ViewController 的 loadView, viewDidLoad, viewDidUnload 分别是在什么时候调用的?
参考答案:
在 iOS 开发中,UIViewController
类的生命周期涉及到多个方法,这些方法在控制器的视图生命周期的不同阶段被调用。loadView
、viewDidLoad
和 viewDidUnload
是其中几个重要的方法。下面是它们各自调用的时机:
-
loadView
- 当控制器的视图需要被加载,但尚未加载时,会调用此方法。
- 默认情况下,如果你没有重写
loadView
方法,系统会为你创建一个UIView
实例作为控制器的视图。但是,如果你需要创建自定义的视图或视图层次结构,你应该重写这个方法。 - 通常,在这个方法中,你会初始化你的主视图,并将其赋值给
self.view
。 - 注意:在
loadView
被调用时,viewDidLoad
尚未被调用。
-
viewDidLoad
- 在控制器的视图加载完成后立即调用。
- 在这个方法中,你通常会进行那些需要在视图完全加载后才能进行的初始化操作,比如设置视图的初始状态,添加子视图,配置约束等。
- 注意:
viewDidLoad
在控制器的生命周期中只会被调用一次,即当视图首次加载时。
-
viewDidUnload
- 在 iOS 6 之前的版本中,当控制器的视图被卸载时(例如,因为内存警告),会调用此方法。
- 在这个方法中,你应该释放任何与视图相关的强引用,以便系统能够回收内存。
- 但是,从 iOS 6 开始,
viewDidUnload
方法已经被废弃,取而代之的是didReceiveMemoryWarning
方法。当收到内存警告时,你应该在didReceiveMemoryWarning
中释放不必要的资源,而不是在viewDidUnload
中。
需要注意的是,随着 iOS 的发展,某些方法和概念可能已经发生了变化或被废弃。因此,当进行 iOS 开发时,建议查阅最新的官方文档以获取最准确的信息。