- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil viewDidLoad viewWillAppear viewWillDisapppear
《iOS编程》P137
关于视图的初始化代码不能写在视图控制器的初始化(1),原因如下:为了实现视图延迟加载,在initWithNibName:bundle:中不应该访问view或view的子视图,而应该放在viewDidLoad中;
viewDidLoad:这个方法是用于确认视图已经加载,该方法会在视图控制器加载完NIB文件之后被调用;
viewWillAppear:该方法会在视图控制器的view添加到应用窗口之前被调用;
这两个方法的区别是:如果只需要在启动后设置一次视图对象,就选择viewDidLoad;如果用户每次看到视图控制器的view时都需要对其进行设置,则选择viewWillAppear;
viewDidLoad、viewWillAppear、viewWillDisappear
原文:http://www.cnblogs.com/mobilefeng/p/4299023.html