第一次加载view的时候,会调用loadView这个方法。也就意味着第一次访问view的时候,view还为nil,它会调用loadView这个方法创建view(必须调用父类的loadView),也就说明他是一个懒加载的方式
- 不是说控制器创建好,控制器的view就创建好,而是当我们用到这个view的时候才会创建
- 无论控制器的view是以何种方式创建的,他一定是调用loadView的方式创建的
调用流程图
如果需要自定义view,那么就不需要调用[super load],因为这个方法创建父类默认的view,这个时候我们可以在loadView方法中添加自定义的view
- (void)loadView
{
// [super loadView];
NSLog(@"loadView");
self.view.backgroundColor = [UIColor purpleColor];
}
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad");
}
这是一个死循环 不会打印viewDidLoad.
- (void)loadView
{
[super loadView];
NSLog(@"loadView");
self.view.backgroundColor = [UIColor purpleColor];
}
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad");
}
这个的打印结果如下:
然后显示紫色