Ouvrir une vue dans UITabBarController
-
03-07-2019 - |
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.
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).