【问题标题】:viewDidLoad in iOS 6 called once?iOS 6 中的 viewDidLoad 调用一次?
【发布时间】:2012-10-31 06:20:18
【问题描述】:

注意:这个问题与最近的deprecation of viewDidUnload有关。我在这个话题上见过"great" and logical answers,但显然they were proven wrong。谨慎行事,如您所见,这个主题非常混乱。

From Apple's Docs:

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

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

【问题讨论】:

  • 我发现在 iOS 6 中,当我将 ViewController 的方向设置为横向时,会调用两次 viewDidLoad。
  • @DJean 我相信您的答案比当前接受的答案更准确。
  • @DJean 你如何将UIViewControllers 方向“设置”为横向?以编程方式?当我通过手动或programmatically 旋转设备来执行此操作时,不会再次调用viewDidLoad。

标签: ios uikit ios6 viewdidload


【解决方案1】:

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

但是,我不会在像UIImagePickerController 这样的复杂系统提供的视图控制器中依赖这种行为。也许它将自己的view 设置回零。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多