Je suis un peu confus à votre question, mais Je pense que cela devrait aider. Autant que je sache, vous ne pouvez pas avoir le bouton "retour" sur un UINavigationController revenir en arrière plus de 1 pop. Donc ce que vous faites est que vous devez ajouter un autre bouton qui fait la fonction popToRootViewController. Essayez quelque chose comme ceci:
UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(homeAction:)];
self.navigationItem.rightBarButtonItem = newButton;
Ceci ajoutera un bouton sur la droite de votre contrôleur de navigation. L'étape suivante consiste à ajouter une fonction appelée tout ce que vous nommez dans l'action (dans ce cas, elle doit s'appeler "homeAction"). Cela ressemble à ceci:
-(IBAction)homeAction:(id)sender {
[self.navigationController popToRootViewControllerAnimated:YES];
}
Cela devrait couvrir le retour à la racine du contrôleur où que vous soyez dans la pile. Vous devrez également utiliser la méthode IBAction dans votre fichier .h, mais à part cela, il devrait faire tout ce que vous voulez.
Je viens de rencontrer ce problème et la raison en était que j'appelais 'popToRootViewController' dans '- (void) viewWillDissapear'. L'appeler en dehors de toute méthode _view-like_ a réellement fonctionné. – elitalon
Connexe: http://adrianhosey.blogspot.com.es/2009/06/why-wont-my-backbarbuttonitem-use-its.html – elitalon