Öffnen Sie eine Ansicht in UITabBarController
-
03-07-2019 - |
Frage
Ich brauche programmatisch eine bestimmte Registerkarte in meiner Tab-Leiste zu öffnen.
Ich habe versucht, die folgende Methode von meinem UITabBarController Aufruf:
self.selectedViewController = myVController;
Was nicht funktioniert.
Was ist der richtige Weg, um einen Tab zu öffnen?
Danke.
Update: Ich habe versucht, den folgenden Code:
self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];
, die mir ein wünschenswertes Tab öffnet (es ausgewählt wird), aber die aktive Ansicht wird nicht aktualisiert.
Lösung
Im Hinblick auf die selectedIndex
Eigenschaft, Apples docs sagen:
In Versionen von iPhone OS vor Version 3.0, diese Eigenschaft spiegelt der Index des ausgewählten Tableiste Artikel nur. Der Versuch, diesen Wert zu setzen, um ein Index eines View-Controller, die ist nicht sichtbar in der Tab-Leiste, ist aber stattdessen durch die Mehr-Navigation verwaltet Controller, hat keine Wirkung.
Vielleicht war das dein Problem?
Eine mögliche Abhilfe ist Ihre eigene UITabBar
zu nutzen und Ihre eigenen Ansichten zu behandeln. Dann können Sie etwas tun:
[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];
implementieren Nur UITabBarDelegate
und definieren diese Funktion Elementauswahl Nachrichten zu erhalten und manuell umschalten Ansichten. (Obwohl, wenn Sie erweiterte UITabBarController
Funktionen verwenden es nicht wert sein können Ihre Mühe.)
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
}
Andere Tipps
So wie ich es getan habe, ist self.tabBarController.selectedIndex = 1
zu verwenden (erster Tab ist bei Index 0).