2010-09-16 9 views
0

En cours de création d'une application basée sur la navigation pour l'iPhone, où la vue racine du NavigationController est le menu principal (accueil). Il y a 3 autres vues (nommées View1, View2 et View3), accessibles de cette manière; menu principal -> View1 -> View2 -> View3. Chaque vue dispose d'un bouton d'accueil qui appelle 'popToRootViewControllerAnimated' et retourne au menu principal. Lorsque ce bouton est enfoncé dans View2, il revient au menu principal. Toutefois, lorsque vous allez du menu principal à View1, le bouton Précédent sera manquant. C'est la seule vue qui souffre du problème. La chose qui a amené cela est que nous sommes en train d'initialiser paresseusement View1. En d'autres termes, nous gardons une référence à View1 dans le menu principal afin que nous l'ayons constamment sous la main (pour garder l'état de cette vue). La chose étrange est que ce problème se produit uniquement en appuyant sur le bouton "Accueil" de View2. Avec View3, il n'y a pas de problème.iPhone UINavigationController Bouton Précédent manquant

Dans chacune des méthodes 'ViewWillAppear' des vues, nous avons le code suivant qui ajoutera un bouton de retour au NavigationBar de la vue;

[self.navigationItem.backBarButtonItem release]; 
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem = backButton; 

Quelqu'un at-il une idée sur la façon de résoudre ce problème?

Répondre

1

Vous devez appliquer ce code dans le contrôleur de vue précédent, car le bouton de retour dépend du contrôleur de vue situé au-dessus du contrôleur de vue visible dans la pile de navigation.

+0

Je l'ai fait - toutes les vues (y compris le menu principal) a le code ci-dessus. – Mabbage

+0

Pourquoi relâchez-vous backBarButtonItem? Vous ne le possédez pas. – jrtc27

+0

Je crois que c'était de prendre le code d'une autre question sur stackoverflow sur la personnalisation du bouton de retour. Avec ou sans cette ligne, cela ne fait aucune différence. J'ai depuis commenté tout ce qui va modifier le bouton de retour ou la barre de navigation et le problème persiste. – Mabbage

Questions connexes