ViewController
loadView什么时候被调用?
每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。
向ViewController发送init消息会调用initWithNibName:bundle:方法并为2个参数都传入nil值,此时UIViewController对象仍会在应用程序包中查找和当前UIViewController子类同名的xib文件加载,因此
BNRReminderViewController *rvc = [[BNRReminderViewController alloc]initWithNibName:@"BNRReminderViewController" bundle:[NSBundle mainBundle]];
//等价于 BNRReminderViewController *rvc = [[BNRReminderViewController alloc]init];
注意有个前提就是xib文件的Name必须和所属类名保持一致如图:
为了实现视图延迟加载,在initWithNibName:bund中不应该访问view或view的任何子视图。凡事和view或view的子视图有关的初始化代码,都应该在viewDidLoad方法中实现,闭幕加载不需要在屏幕上显示的视图。
如果只需要在应用启动后设置一次视图对象,就选择viewDidLoad;
如果用户每次看到视图控制器的view时都需要对其进行设置,则选择viewWillAppear: