跳到主要内容

ViewController 的 loadView,、viewDidLoad,、viewDidUnload 分别是在什么时候调用的?

参考答案:

在 iOS 的 UIViewController 的生命周期中,loadViewviewDidLoadviewDidUnload 这三个方法扮演着重要的角色。然而,需要注意的是,从 iOS 6 开始,viewDidUnload 方法已经被废弃,并且从 iOS 9 开始,它已经完全被移除了。因此,对于现代的 iOS 开发,我们主要关注 loadViewviewDidLoad

以下是这三个方法(尽管 viewDidUnload 已被废弃)的调用时机及其描述:

  1. loadView

    • 调用时机:当 view controller 的 view 属性第一次被访问,并且此时 view 属性为 nil 时,系统会自动调用这个方法。
    • 描述:这个方法的主要任务是加载或创建 view controller 的视图。如果你使用 Interface Builder 来创建视图,那么通常不需要重写这个方法,因为系统会自动加载与 view controller 关联的 XIB 文件。但是,如果你选择手动创建视图,你可以在这个方法中编写代码来创建和配置你的视图。
  2. viewDidLoad

    • 调用时机:在 loadView 方法执行完毕后,并且视图层次结构已经被完全加载到内存中时,viewDidLoad 会被调用。
    • 描述:这个方法通常用于执行初始化视图的额外设置,比如添加子视图、配置约束、绑定数据等。这是进行视图自定义和配置的理想位置。
  3. viewDidUnload(已废弃)

    • 调用时机:在 iOS 6 及之前的版本中,当内存警告发生时,系统可能会卸载不再需要的视图来释放内存,此时会调用 viewDidUnload 方法。
    • 描述:这个方法通常用于释放与视图相关的强引用,以便视图可以被正确地卸载和释放。然而,由于这个方法的废弃和移除,现代的 iOS 开发中不再需要处理这个方法。相反,开发者应该使用自动引用计数(ARC)来管理内存,并在 didReceiveMemoryWarning 方法中释放非必需的资源。

总结来说,loadViewviewDidLoad 是 iOS 视图控制器生命周期中非常重要的两个方法,用于加载和初始化视图。而 viewDidUnload 由于已被废弃和移除,不再需要关注。