View加载过程

时间:2023-12-23 16:52:44

1. 先判断子类是否重写了loadView,如果有直接调用。之后调viewDidLoad完成View的加载。
2 .如果是外部通过调用initWithNibName:bundle指定nib文件名的话,ViewController记载此nib来创建View。
3 .如果initWithNibName:bundle的name参数为nil,则ViewController会通过以下两个步骤找到与其关联的nib。
  A .如果类名包含Controller,例如ViewController的类名是MyViewController,则查找是否存在MyView.nib;
  B .找跟ViewController类名一样的文件,例如MyViewController,则查找是否存在MyViewController.nib。
4  .如果子类没有重写的loadView,则ViewController会从StroyBoards中找或者调用其默认的loadView,默认的loadView返回一个空白的UIView对象。
注意第一步,ViewController是判断子类是否重写了loadView,而不是判断调用子类的loadView之后ViewController的View是否为空。就是说,如果子类重写了loadView的话,不管子类在loadView里面能否获取到View,ViewController都会直接调viewDidLoad完成View的加载