awakeFromNib与viewDidLoad的区别

当一个nib文件对应两个类,File's Owner的class为XXXViewController,Objects下的View对应的为XXXView时:

awakeFromNib:在XXXView.m文件中有效,即只有写在这个类文件中才会调用,写在XXXViewController.m文件中时,不会被调用。
viewDidLoad:写于XXXViewController.m文件中,作用同awakeFromNib。
 
当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的 awakeFromNib函数来响应这个消息,执行一些必要的操作。也就是说通过nib文件创建view对象是执行awakeFromNib 

viewDidLoad 
当view对象被加载到内存是就会执行viewDidLoad,所以不管通过nib文件还是代码的方式创建对象都会执行viewDidLoad 

所以用以下代码运行程序时不执行awakeFromNib

 

posted @ 2013-09-11 09:24  荔枝林  阅读(1860)  评论(0编辑  收藏  举报