2012-12-20 45 views
5

Mam aplikację z TabBar z 5 kart (zwykły pasek kart bez niestandardowej klasy). Kiedy uruchamiam aplikację, otwiera się lewą kartę. Najpierw chcę otworzyć środkowy. Próbowałem wstawiaćw ViewDidLoad z ViewController, który jest po raz pierwszy otwarty, ale karta nie przełącza. Widzę, że jest podświetlona, ​​ale nie wybrana. Po umieszczeniu powyższego kodu pod numerem viewWillAppear zostanie on wybrany przy pierwszym uruchomieniu, ale kiedy wybiorę lewą kartę od czasu do czasu przeskoczy do środkowego.Otwórz aplikację w określonej zakładce w pasku zakładek

próbowałem również bez powodzenia:

DetailsViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailsViewController"]; 
[self.navigationController pushViewController:vc animated:true];  

Co robię źle?

+1

Czy TabBar został dodany z Konstruktora interfejsów lub przy użyciu kodu? –

+0

Interfejs. I przeciąganie wyzwalanych segmentów do kontrolerów widokowych – Segev

+0

Może [następny link] (http://stackoverflow.com/questions/4195316/iphone-how-i-hide-a-tab-bar-button) pomoże ci, jeśli dobrze cię zrozumiem. – Neznajka

Odpowiedz

8

To jedyne rozwiązanie, które sprawdziło się u mnie. w appdelegate:

UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
[tabBar setSelectedIndex:2]; 
0

Istnieje potrzeba, aby zadzwonić

tabBarController.selectedIndex = desiredIndex; 

Inside applicationDidLaunch.

+0

To nie działa dla mnie. – Segev

0

Spróbuj ustawić go w aplikacji: didFinishLaunchingWithOptions: jeżeli kontroler umieszczenie zakładek jest rootViewController jak

`[self.window.rootViewController.tabBarController setSelectedIndex:3];` 
+0

W moim 'appdelegate'? To nie zadziałało – Segev

0

W serii ujęć ustawić niestandardową klasę do TabBarController iw tej niestandardowej klasy

-(void) viewDidLoad 
{ 
    [self.tabBarController setSelectedIndex:3]; 
} 
0

coś zrobić hackish w przeszłości. Znalazłem w celu każdej karcie, aby stać się aktywne, moim applicationDidFinishLaunching, muszę pętli przez wszystkie moim zdaniem kontrolerów następnie przejść do „Widok” właściwość:

for(viewController in arrayOfViewController) 
{ 
    // will load the view controller into memory 
    [viewController view]; 
} 

nie wiem, czy można dokonać żadnego pożytku tego.

+0

Zło + Nie mogę zobaczyć, dlaczego to powinno pomóc ... –