iOS viewDidLoad 什么时候调用

  

- (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被加载的时候

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方法,感兴趣的同学可以试试。

原文地址:https://www.cnblogs.com/treejohn/p/3672526.html