2010-11-01 5 views
1

Je pousse à quelques viewcontrollers avec mon UINavigationController et quand je suis sur mon 3ème UISubViewController je codé à « popToRootViewController » et le dos de la pop, mais le navigationbar -l'appuie sur le contrôleur 2ème vue pas sur le 1er ..PopToRootViewController par niveau 3, pas pop aux articles barbutton

  • Je l'ai essayé avec et sans animation, mais rien ne va changer.
  • J'ai essayé de dire que self.navigationController.navigationBar revient, mais ça ne fait rien sur ma barre.

Merci pour l'aide ..

+0

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

+0

Connexe: http://adrianhosey.blogspot.com.es/2009/06/why-wont-my-backbarbuttonitem-use-its.html – elitalon

Répondre

1

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.

0

à moins que vous faites quelque chose de bizarre avec le tableau de UIViewControllers de NavigationController, la méthode doit être:

[self.navigationController popToRootViewControllerAnimated:YES]; 
Questions connexes