9

注意:这个问题与最近弃用的viewDidUnload. 我已经看到围绕这个主题的“伟大”和合乎逻辑的答案,但显然它们被证明是错误的。谨慎行事,如您所见,这个主题非常令人困惑。

来自 Apple 的文档:

但是,当视图未附加到窗口时,系统会自动释放这些昂贵的资源。大多数视图使用的剩余内存足够小,以至于系统不值得自动清除和重新创建视图层次结构。

所以...我可以安全地假设在 iOS 6 中,只要我没有将 viewController 的视图显式设置为 nil(手动卸载它),viewDidLoad在应用程序的整个生命周期内,对于任何分配的 viewController 实例,只会调用一次?

4

1 回答 1

7

从 iOS 6 开始,您的UIViewController子类只会收到viewDidLoad一次,除非您编写代码将其设置viewnil.

但是,我不会在复杂的系统提供的视图控制器(如UIImagePickerController. 也许它将自己设置view为零。

于 2012-10-31T06:25:06.693 回答