167 votes

Basculer vers un onglet TabBar par programme?

Supposons que j'ai un UIButton dans un onglet dans mon application iPhone et que je souhaite le faire ouvrir un onglet différent dans la barre d'onglets du TabBarController. Comment pourrais-je écrire le code pour le faire?

Je suppose que je décharge la vue existante et charge un onglet spécifique, mais je ne sais pas comment écrire le code avec précision.

Merci.

420voto

Jordan Points 14134

Essaye ça:

 self.tabBarController.selectedIndex = 1;
 

ou

 [self.tabBarController setSelectedIndex:1];
 

20voto

John Smith Points 4266

Notez que les onglets sont indexés à partir de 0. L’extrait de code suivant fonctionne donc.

 tabBarController = [[UITabBarController alloc] init];
.
.
.
tabBarController.selectedViewController = [tabBarController.viewControllers objectAtIndex:4];
 

passe au cinquième onglet de la barre.

13voto

ThomasT Points 11

Mon opinion est que selectedIndex ou utiliser objectAtIndex n'est pas nécessairement la meilleure façon de changer de page. Si vous réorganisez vos onglets, une sélection d'index codée en dur peut perturber le comportement de votre ancienne application.

Si vous avez la référence d'objet du contrôleur de vue vers lequel vous voulez basculer, vous pouvez faire:

 tabBarController.selectedViewController = myViewController
 

Bien sûr, vous devez vous assurer que myViewController est vraiment dans la liste des tabBarController.viewControllers .

9voto

Alex Deem Points 3494

Vous pouvez simplement simplement définir la propriété selectedIndex sur le UITabBarController sur l'index approprié et la vue sera modifiée de la même manière que l'utilisateur a appuyé sur le bouton d'onglet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X