在我的简单导航风格的iPhone应用程序中,当用户按下按钮时,我使用presentViewController呈现视图控制器V1(模态)。
当用户按下另一个按钮时,然后使用presentViewController呈现另一个视图控制器V2(模态)。
然后我尝试通过在根导航控制器上调用dismissViewController来解决这两个问题,并且如预期的那样它们会从屏幕上消失:-)然而,当我记录dealloc调用时,我什么也看不见: - (
通过反复试验我追踪到的问题是在V1中我实现了canBecomeFirstResponder == YES。如果我将此更改为NO,那么所有内容都会正确释放。好像第一响应者正在保持对V1的引用。然而 - 当我出现V2时,我看到V1辞职第一响应者。实际上,如果我不会出现V2,那么V1将会解除罚款/
任何人都会看到这样的事情或知道发生了什么事情?我在iOS7上
[更新:我使用的是ARC,它只是一个非常简单的测试应用程序 - 所以在任何地方都没有代表或强引用。)
感谢。
答案 0 :(得分:1)
为什么不在呈现V2之前首先解雇V1?然后你只需要解雇V2就可以回到root。
答案 1 :(得分:0)
在解除之前,请在导航控制器上调用poptorootviewcontroller。