跳到主要内容

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

参考答案:

在 iOS 开发中,UIViewController 类的生命周期涉及到多个方法,这些方法在控制器的视图生命周期的不同阶段被调用。loadViewviewDidLoadviewDidUnload 是其中几个重要的方法。下面是它们各自调用的时机:

  1. loadView

    • 当控制器的视图需要被加载,但尚未加载时,会调用此方法。
    • 默认情况下,如果你没有重写 loadView 方法,系统会为你创建一个 UIView 实例作为控制器的视图。但是,如果你需要创建自定义的视图或视图层次结构,你应该重写这个方法。
    • 通常,在这个方法中,你会初始化你的主视图,并将其赋值给 self.view
    • 注意:在 loadView 被调用时,viewDidLoad 尚未被调用。
  2. viewDidLoad

    • 在控制器的视图加载完成后立即调用。
    • 在这个方法中,你通常会进行那些需要在视图完全加载后才能进行的初始化操作,比如设置视图的初始状态,添加子视图,配置约束等。
    • 注意:viewDidLoad 在控制器的生命周期中只会被调用一次,即当视图首次加载时。
  3. viewDidUnload

    • 在 iOS 6 之前的版本中,当控制器的视图被卸载时(例如,因为内存警告),会调用此方法。
    • 在这个方法中,你应该释放任何与视图相关的强引用,以便系统能够回收内存。
    • 但是,从 iOS 6 开始,viewDidUnload 方法已经被废弃,取而代之的是 didReceiveMemoryWarning 方法。当收到内存警告时,你应该在 didReceiveMemoryWarning 中释放不必要的资源,而不是在 viewDidUnload 中。

需要注意的是,随着 iOS 的发展,某些方法和概念可能已经发生了变化或被废弃。因此,当进行 iOS 开发时,建议查阅最新的官方文档以获取最准确的信息。