6

J'utilise la barre d'onglets + l'application de navigation et j'ai 4 barres d'onglets. Lorsque je navigue d'un contrôleur de vue à un autre contrôleur de vue, la méthode viewWillAppear: ne semble pas répondre et je suis forcé de l'appeler manuellement en créant l'objet du contrôleur de vue suivant. Donc ma question est, comment puis-je éviter d'appeler la méthode viewWillAppear: manuellement chaque fois que je navigue d'un contrôleur de vue à l'autre? Au lieu de cela, il devrait être déclenché automatiquement tout comme la méthode viewdidLoad: est déclenchée lorsque vous naviguez d'un contrôleur de vue à l'autre. S'il vous plaît, guidez moi sur comment je pourrais faire ça.viewWillAppear: la méthode ne semble pas répondre tout en utilisant la barre d'onglets et les contrôleurs de navigation ensemble

Espérant le meilleur possible réponse Merci à l'avance

+0

Quand vous dites viewWillAppear: vous voulez dire la fonction animée viewWillAppear: (BOOL). Est-ce correct? – BumbleBoks

Répondre

0

Dans certaines applications qui ont un contrôleur de barre d'onglets, chaque onglet doit également un contrôleur de navigation avant une vue peut être ajouté:

[[[_mainTabController topViewController] navigationController] pushViewController:renewalScreen animated:YES]; 
0

Vous devrait vérifier UITabBarDelegate puis rechercher la méthode:

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

Description: envoyée au délégué lorsque l'utilisateur sélectionne une barre élément onglet.

+0

Ceci est utile. –

0

Voulez-vous dire 4 éléments d'onglets sur une barre d'onglets, plutôt que sur 4 barres d'onglets? Si vous disposez d'une barre d'onglets avec des éléments d'onglet, les méthodes viewWillAppear: doivent absolument être appelées par le système car les onglets sont sélectionnés par l'utilisateur. Vous pourriez avoir d'autres problèmes qui causent le problème.

0

Vous n'avez pas oublié d'appeler [super viewWillAppear] quelque part?

0

Essayez plutôt d'utiliser la méthode viewDidAppear.

2

Vous avez raison, viewWillAppear est un peu spécial, il est généralement appelé automatiquement, mais dans certains cas, y compris lorsque vous ajoutez une vue de contrôleurs de vue manuellement (voir addSubview :), et aussi lors de l'ajout d'un contrôleur de vue à un UITabBarController ou UINavigationCnotroller (dont vous avez les deux!) Il ne reçoit pas de message. Ceci est cependant uniquement pour la vue racine, lorsque vous naviguez (peut-être avec un contrôleur de navigation) d'avant en arrière, viewWillAppear de la vue racine se déclenchera en tant que point. En bref, si vous avez besoin d'implémenter quelque chose dans viewWillAppear dans ces cas, vous devriez le signaler vous-même quand vous savez qu'il va être présenté. Vous pouvez gérer ce cas dans votre contrôleur de vue, consultez l'article suivant sur la question:

http://www.touchthatfruit.com/viewwillappear-and-viewdidappear-not-being-ca

Bonne chance.

Questions connexes