【问题标题】:loadView Vs init methodloadView 与 init 方法
【发布时间】:2011-01-14 21:52:06
【问题描述】:
请告诉我什么时候调用 init 和 loadView 方法。
据我所知,init 方法仅在视图初始化时调用一次,而 loadView 在加载视图时调用。因此,即使您在视图堆栈中推送一个新视图然后弹出它,也应该调用弹出视图的loadView。但是当我在调试模式下运行我的代码时,这两种方法都会被调用一次,无论我加载同一个屏幕多少次。如果我遗漏了什么,请告诉我。
【问题讨论】:
标签:
iphone
cocoa
ios
uiview
loadview
【解决方案1】:
你在某些方面是对的 :)
在实例化 ViewController 对象时调用 init 方法。每次 ViewController 将其视图加载到内存中时,都会调用 loadView 方法。这可能发生在第一次显示视图之前,或者应该显示第二次、第三次、……但之前已从内存中删除时。 (如果您的应用程序内存不足,可能会发生这种情况。)
如果您想在每次视图可见时执行一些代码,您应该查看方法 viewWillAppear/viewWillDisappear/viewDidAppear/viewDidDisappear。
【解决方案2】:
loadView 在您访问视图控制器的view 属性时调用,它是nil。
如果视图已被卸载(viewDidUnload 已被调用以用于内存目的),则将再次调用 loadView。如果不是,它将不会被调用。
你想要的是viewWillAppear: 或viewDidAppear:。