时间:2011-01-14 21:52:07

标签: iphone cocoa ios uiview loadview

请告诉我init和loadView方法被调用的时间。 据我所知,初始化视图时只调用一次init方法,并且只要加载视图就调用loadView。因此,即使您在视图堆栈中推送新视图然后弹出它,也应该调用加速视图的loadView。但是当我在调试模式下运行我的代码时,无论我加载相同的屏幕多少次,这两种方法都被调用一次。如果我遗失了什么,请告诉我。

2 个答案:

答案 0 :(得分:5)

你在某些方面是正确的:) 在实例化ViewController对象时调用init方法。每次ViewController将其视图加载到内存时,都会调用loadView方法。这可能发生在第一次显示视图之前,或者应该显示第二次,第三次......时间,但之前已从内存中删除。 (如果您的应用内存不足,可能会发生这种情况。) 如果要在每次视图可见时执行某些代码,您应该查看方法viewWillAppear / viewWillDisappear / viewDidAppear / viewDidDisappear。

答案 1 :(得分:5)

当您访问视图控制器的loadView属性并且它是view时,会调用

nil

如果视图已被卸载(已为内存目的调用viewDidUnload),则将再次调用loadView。如果没有,它将不会被调用。

您想要的是viewWillAppear:viewDidAppear: