1,可以认为xib 和 nib 是同义词
NSArray * xibViews =[[NSBundle mainBundle] loadNibNamed:@"RowView" owner:(xib管理者) options:nil];
使用xib思想
快速通过图形界面拖出控件,(省掉代码添加控件的力气),然后 传入参数给owner让它来管理xib里面的控件(比如说监听事件),这个owner里的方法可以被xib里的控件调用(意味着拥有者必须有方法)
3,storyboard和xib的异同
* storyboard : 描述软件界面,大范围,重量级,比较适合描述整个软件的所有界面
* xib :描述软件界面,小范围,轻量级,比较适合描述某个小界面(局部界面)
2> 相同点 :本质都是转成代码
4,file's Owner的使用步奏
2> 建立File'sOwner 跟控件之间的联系
3> 利用代码加载xib,传递Owner参数(类型一定要匹配)
5,如果给owner传入对象,那么有下列坏处
对于新建的xib ,我们要封装起来,我们的viewControll控制器不需要知道xib的实现细节,我们只需要跟它封装以后留下对外界联系的接口 交流就行,那么这个接口让什么来实现呢,类,可以很好的体现封装性,也就是说,将xib 封装到一个类中,让这个类来管理xib内部的属性和功能实现。
那么,如何实现将xib封装到一个类中,xib中通常 有一个最底层的UI空间,其它控件都在它之上,我们只需,让那个最底层的UI控件成为 那个类,然后让这个UI控件之上的建筑,交给这个类来管理,面向外界的只留一个数据模型接口,当传入数据模型时,在内部set方法中将导入的数据分别注入到需要这些数据的控件。这样就实现了封装,避免了耦合性,下次直接就可以拿到那个类和xib用到其它地方,不用改变任何代码。