//
// ViewController.m
// test
//
// Created by 裴波波 on 16/4/12.
// Copyright ? 2016年 裴波波. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(void)loadView{
NSLog(@"loadView");
}
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
打印結果
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%p",self.view);
NSLog(@"viewDidLoad");
}
打印結果
解決辦法之一就是在loadview方法中給self.view指定一個view
-(void)loadView{
UIView * view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
view.backgroundColor = [UIColor blueColor];
self.view = view;
NSLog(@"loadView");
}
此時打印結果
並且模擬器顏色為藍色bluecolor
如果在loadview與viewdidload中都給控制器指定了view,那麼從調用方法的順序上看可以得到結果:最後被調用的viewdidload方法中的view會覆蓋掉loadview中給控制器設置的view.
文檔上說:當控制器的view為nil時,會調用這個方法,這個方法會創建一個view給控制器.
視圖控制器的生命周期