我有一个名为" FirstViewController"的viewController。在IBAction中,我调用另一个名为" thePageFlipViewController"并通过
推动它 [self presentModalViewController:thePageFlipViewController animated:YES];
一段时间后,用户使用一个按钮关闭PageFlipViewController,其中通过FirstViewController中的委托执行以下代码:
[self dismissModalViewControllerAnimated:YES];
[thePageFlipViewController release];
这是我的问题:
FirstViewController中的 -viewDidLoad
在解除thePageFlipController
后有时会被调用。我不明白为什么,因为firstViewController
应该生活在后台。它取决于模态视图的显示时间吗? ARC有可能发布一些东西吗?
我的问题是,我在viewDidLoad中初始化了很多对象,如果再次调用viewDidLoad
,应用程序崩溃了。我在那里为RESTKit定义了一些路由,RestKit抱怨路由已经设置并使应用程序崩溃。
感谢任何帮助。
答案 0 :(得分:1)
当实际未显示视图时,可以将其卸载以释放内存。当发生这种情况时,您会收到viewDidUnload:
的调用,这样您就可以释放您持有强引用的任何对象。然后,下次需要视图时,将在重新加载视图时再次调用viewDidLoad:
,您必须重新创建在viewDidUnload:
中释放的对象。
请参阅UIViewController类引用的Memory Management section。
this answer已经有了很好的解释。