在presentModalView之后调用ViewController viewDidLoad?

时间:2011-11-23 14:11:30

标签: ios viewdidload presentmodalviewcontroller

我有一个名为" 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抱怨路由已经设置并使应用程序崩溃。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

当实际未显示视图时,可以将其卸载以释放内存。当发生这种情况时,您会收到viewDidUnload:的调用,这样您就可以释放您持有强引用的任何对象。然后,下次需要视图时,将在重新加载视图时再次调用viewDidLoad:,您必须重新创建在viewDidUnload:中释放的对象。

请参阅UIViewController类引用的Memory Management section

this answer已经有了很好的解释。