2010-04-02 78 views
0

试图修复一个非常奇怪的错误,我有3个视图控制器,从应用程序委托开始,并相应地推送对方。第三视图控制器,然后有一个工具栏按钮,在这里调用代码:PoptorootViewController失败,然后删除所有ViewControllers

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

这工作第一次全面,但是当我回到这个视图控制器,然后再试一次。首先报告堆栈中有3个视图控制器。然后它释放堆栈中的第二个视图控制器并且不会崩溃,但不会再进一步​​。如果我再次按下按钮,它说栈上没有视图控制器,并且无法响应。

我有每个视图控制器中的所有viewdid,viewwill,e.t.c的日志,似乎没有奇怪的行为。也没有来自任何视图控制器的内存警告。

为什么这个工作一次,但不是第二次?

+0

只是麻烦这一次,如果任何人需要更多的代码请问。我难倒了 – 2010-04-02 18:19:06

回答

1

那我解决了这个问题。

我想从viewcontroller poptorootviewcontroller没有视图,但不是刚刚显示的UIImagepickercontroller。即使试图首先解散这个模式控制器,(即使有延迟),我仍然有同样的问题。我改为将问题的viewcontroller更改为UIMagepickercontroller子类,并在另一个视图控制器中处理当前并解散。

经验教训,不要用UIImagepickercontroller模式视图ontop弹出根目录。