参考文章
1、- awakeFromNib
awakeFromNib
它是NSObject类目里提供的一个方法,根据类目名,我们也能见名思意的知道,它是用于Interface Builder的,也就是给xib文件和storyboard(storyboard在打包时会拆解成它包含的xib文件,接下来就不特意提及storyboard了)的。
它的原理是,当xib文件加载完的时候,会发送一个awakeFromNib的消息到xib文件中的每个对象,每个对象都可以重写自己的awakeFromNib函数来响应这个消息,执行一些必要的操作。比如storyboard上的一个scene,也就是一个xib,它加载完成时,会给它上面的每个对象发一条消息。
它是基类的扩展方法,这就为我们用代码更细腻的操作xib创造了可能。在xib文件的Indentity inspector中,将xib文件上的对象与类绑定。然后在.m文件中重写- awakeFromNib即可。
以下是我把storyboard中的navigation item 与我自己定制的继承于UINavigationItem的类绑定后的代码片段
-(void)awakeFromNib
{
//说明文档里说必须调用父类的awakeFromNib,以防出现意外,详细说明见文档
[super awakeFromNib];
self.searchItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"m_search23"] style: UIBa