UIViewController生命周期遇到的问题

独奏

技术分享|2014-8-12|最后更新: 2023-2-23|
type
status
date
slug
summary
tags
category
icon
password
init-初始化程序; viewDidLoad-加载视图; viewWillAppear-UIViewController对象的视图即将加入窗口时调用; viewDidApper-UIViewController对象的视图已经加入到窗口时调用; viewWillDisappear-UIViewController对象的视图即将消失、被覆盖或是隐藏时调用; viewDidDisappear-UIViewController对象的视图已经消失、被覆盖或是隐藏时调用; viewVillUnload-当内存过低时,需要释放一些不需要使用的视图时,即将释放时调用; viewDidUnload-当内存过低,释放一些不需要的视图时调用。
上面的内容是生命周期。今天遇到的问题如下:
RootViewController.m
MyViweController.m
MyViweController 是 继承自 RootViewController 的。
log打印的顺序如下
要知道:视图控制对象不会在创建的那一刻就马上创建相应的视图,而是等到需要使用的时候才通过调用loadView来创建,这样的做法能提高内存的使用率。
但是我上面的代码中,在 init 里面使用self.view时,就开始加载视图了。这就导致延迟载入机制失效了。
所以,我们在使用中,尽量不要在init相关的方法中调用viewController的相关视图。
参考: