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.

War es hilfreich?

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top