2009-02-18 13 views
11

Ich versuche, die Registerkarte des UITabViewController programmatisch auszuwählen/zu ändern.Wie programmiere ich die Registerkarte (eines UITabViewController)?

versuchte ich es über tun:

self.tabBarController.selectedIndex = 2; 

Das sieht der Weg zu sein, dass ich es tun sollte, aber es funktioniert nicht. Ich dachte, dass der self.tabBarController vielleicht ein schreibgeschütztes Objekt zurückgibt (ich erinnere mich, dass ich das irgendwo gelesen habe), aber ich bin mir nicht sicher, wie ich es zum Laufen bringen soll.

Jede Hilfe wird geschätzt!

+0

Nur um sicher zu sein - liefern Sie den richtigen Index? Tab-Index ist ** Null ** basiert, also sollten Sie für die zweite Registerkarte den Index 1 angeben. –

Antwort

29

Set selectedViewController:

self.tabBarController.selectedViewController = viewControllerYouWant; 

Zum Beispiel

self.tabBarController.selectedViewController 
    = [self.tabBarController.viewControllers objectAtIndex:2]; 
3

die Dokumentation nach, selectedIndex oder selectedViewController sind die Eigenschaften, die Sie wollen, und sind beide übertragbar.

Die Eigenschaft tabBarController ist schreibgeschützt, gibt jedoch ein bearbeitbares Objekt zurück.

Also sieht alles Ihren Code richtig für mich.

0

ich so etwas wie das tue:

[root setSelectedViewController: [root.historyController navController]]; 
1

Dies funktioniert gut für mich, wenn Sie es von Index tun wollen.

[self.tabBarController setSelectedIndex:2]; 
Verwandte Themen