美文网首页
iOS viewDidLoad的调用时机

iOS viewDidLoad的调用时机

作者: liang1030 | 来源:发表于2021-06-22 14:11 被阅读0次
- (void)viewDidLoad; // Called after the view has been loaded. For view controllers created in code, this is after -loadView. For view controllers unarchived from a nib, this is after the view is set.

官网写的很清楚

1.View被加载的时候(Called after the view has been loaded)

2.View controllers用代码创建的时候

3.View controllers通过nib解析的时候

后两种情况我们应该很常见,那么第1种情况是什么情况呢,the view是哪个view,什么时候被加载?

其实某些时候第2种时候,也就是[[UIViewController alloc] init];的时候,init里并没有涉及到子视图和self.view的关系,所以init之后系统也不会调用viewDidLoad方法。

所以,大家应该明白第1种情况的view是谁了。

对,就是controller对象的根view属性,当我们第一次调用self.view也就是setView方法时,系统会自动调用controller对象的viewDidLoad方法。

当调用self.view时,如果view为nil,系统自动调用loadView,创建一个空的view,并且viewDidLoad被调用;view不为nil时,viewDidLoad被调用。

注:

当在控制台打印self.view (po self.view)时,如果viewDidLoad还未调用过,viewDidLoad会被调用(viewDidLoad里调用的方法也会被调用,但是viewDidLoad里的断点不会走)。

参考:

https://www.cnblogs.com/treejohn/p/3672526.html
https://www.jianshu.com/p/77a091107553

相关文章

网友评论

      本文标题:iOS viewDidLoad的调用时机

      本文链接:https://www.haomeiwen.com/subject/cszpyltx.html