2010-04-02 7 views
0

En essayant de corriger une erreur très étrange, j'ai 3 contrôleurs de vue qui commencent à partir du délégué de l'application et se poussent mutuellement en conséquence. Le 3ème contrôleur de vue a alors un bouton de la barre d'outils qui appelle le code ici:PoptorootViewController échoue puis supprime tous les Viewcontrollers

-(void)showEventBrowser; 
{ 
accelManeger.delegate = nil; 
NSLog(@"%u",[self.navigationController.viewControllers count]); 
[self.navigationController popToRootViewControllerAnimated:NO]; 
} 

Cela fonctionne le premier tour de temps, mais quand je reviens à ce contrôleur de vue et essayer à nouveau. Tout d'abord, il signale qu'il y a 3 contrôleurs de vue sur la pile. Il libère ensuite le contrôleur de 2ème vue dans la pile et ne plante pas mais n'ira pas plus loin. Si j'appuie à nouveau sur le bouton, cela indique qu'il n'y a aucun contrôleur de vue sur la pile et ne répond pas.

J'ai des journaux pour tous les viewdid, viewwill, e.ct dans chaque contrôleur de vue et il ne semble y avoir aucun comportement étrange. De même, aucun avertissement de mémoire provenant des contrôleurs de vue.

Pourquoi cela fonctionnerait-il une fois mais pas la deuxième fois?

+0

Juste une fois cette bomber, si quelqu'un a besoin de plus de code s'il vous plaît demander. Je suis perplexe –

Répondre

1

Bien J'ai résolu ce problème.

J'essayais de poptorootviewcontroller à partir d'un viewcontroller qui n'avait pas de vue mais qui n'est pas juste affiché un UIImagepickercontroller. Même en essayant de dissuader d'abord ce modalviewcontroller (même avec un retard), j'ai toujours eu le même problème. J'ai plutôt changé le viewcontroller en question à une sous-classe UIMagepickercontroller et gérer le présent et rejeter dans un autre viewcontroller. Leçon apprise, ne sautez pas à la racine avec UIImagepickercontroller modal view ontop.

Questions connexes