ViewController

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必须和所属类名保持一致如图:

QQ20160626-0.png

为了实现视图延迟加载,在initWithNibName:bund中不应该访问view或view的任何子视图。凡事和view或view的子视图有关的初始化代码,都应该在viewDidLoad方法中实现,闭幕加载不需要在屏幕上显示的视图。

如果只需要在应用启动后设置一次视图对象,就选择viewDidLoad;
如果用户每次看到视图控制器的view时都需要对其进行设置,则选择viewWillAppear:

你可能感兴趣的:(ViewController)