Question

Je dois ouvrir par programmation un certain onglet dans ma barre d'onglets.

J'ai essayé d'appeler la méthode suivante depuis mon UITabBarController:

self.selectedViewController = myVController;

Ce qui ne fonctionne pas.

Quel est le bon moyen d'ouvrir un onglet?

Merci.

Mise à jour: j'ai essayé le code suivant:

self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];

qui m'ouvre un onglet souhaitable (il est en cours de sélection), mais la vue active n'est pas mise à jour.

Était-ce utile?

La solution

En ce qui concerne la propriété selectedIndex , la documentation d'Apple indique:

  

Dans les versions d'iPhone OS antérieures à   version 3.0, cette propriété reflète   l'index de l'item sélectionné   seulement. Tentative de définir cette valeur sur   un index d'un contrôleur de vue qui est   non visible dans la barre d'onglets, mais est   au lieu géré par la navigation Plus   contrôleur, n'a pas d'effet.

C’est peut-être votre problème?

Une solution possible consiste à utiliser votre propre UITabBar et à gérer vos propres vues. Ensuite, vous pouvez faire quelque chose comme ceci:

[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];

Il suffit d'implémenter UITabBarDelegate et de définir cette fonction pour obtenir les messages de sélection d'élément et changer manuellement de vue. (Toutefois, si vous utilisez des fonctionnalités UITabBarController avancées, il ne vaut peut-être pas la peine de faire des efforts.)

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{

}

Autres conseils

Pour ce faire, j'ai utilisé self.tabBarController.selectedIndex = 1 (le premier onglet est à l'index 0).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top