iOS多个nib文件关联同一个类
一.什么情况下使用多个nib文件关联同一个类?
最常用的情况就是,可以实现同一个类的多个界面的初始化,因为可以使用initWithNibName方法来调用不同的xib文件,实现同类不同的界面。
二.几个初始化方式的用法和区别?
1.init和initWithFrane :使用代码实现视图的时候初始化
2.initWithCoder和initWithNibName: 使用IB或者nib文件时初始化调用,当然initWithCoder是系统无论如何都会调用的,哪怕使用initWithNibName,所以可以在里面设置属性的更改,当然我有一个疑问,使用initWithCoder:coder参数怎么填?如有大神知道,评论区告诉我。
3.当nib文件被加载时,会调用aweakFromNib,也可以在这个函数里写操作。比如其nib文件中子视图的UI属性更改。
4.initWithNibName和loadNibName是有挺大区别的(自行百度)
再次提醒一下,含Nib文件的类/视图的初始化只能使用initWithNibName和initWithCoder,而init方法和initWithFrame只适合于代码实例化。
三.nib文件怎么关联类?
首先你得意识到如果不关联,调用initWithNibName就出现“
[UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view outlet was not set.'
”错误怎么解决啦!叫我一声大哥,快点哈哈。
1.将另外一个nib文件的File‘Owner的class为设置为关联类,注意不是View的class哈
2.如果View中有其他控件的需要添加outlet的必须添加,不然也会出错哟,一个类的outlet属性可以关联不同的nib文件的控件哟!
按 Control 点击"Files's Owner", 里面有个默认的IBOutlet变量view, 看一下后面有没有做关联,如果没有就拉到下面的View和视图做个关联
好了,解决啦!睡觉。。。。。zzzzz