iOS nib file owner
2016-03-29 00:37
351 查看
nib文件中的file owner属性,设定后app在运行时加载nib文件的过程中会通过file owner重新建立nib文件中描述的控件与其在file owner中对应的IBOutlet或IBAction的连接,所以有的时候通过loadNibNamed函数加载nib文件时会crash,其中的一个可能的原因就是 已经在nib file中指定了控件及其在file owner中对应的IBOutlet或IBAction,但是file owner中没有写对应的IBOutlet或IBAction的代码,因此app在加载这个nib的过程中就可能会crash。
另外,nib文件中控件与对应的IBOutlet或IBAction连接不止可以通过在file owner指定的类实现,也可以在单独的一个控件对应的类中实现,例如可以自定义一个MyUIView类继承自UIView,然后在nib文件中将某一个UIView的class设成MyUIView, 随后在该View中添加的子view都可以先在MyUIView类中定义相应的IBOutlet或IBAction, 然后再建立连接。当然也可以在file owner的类中定义。要注意的一点是通过loadNibNamed加载nib文件时owner参数一定要设对,要与nib文件中指定file owner一致。
loadNibNamed与initWithNibName函数的区别
loadNibNamed是NSBundle中的方法,owner参数要自己指定,该函数返回一个数组,即nib文件描述的UI树形结构的第一层的所有节点。
initWithNibName是UIViewController的方法,owner参数不用自己指定,默认为该UIViewController对应的类。
另外,nib文件中控件与对应的IBOutlet或IBAction连接不止可以通过在file owner指定的类实现,也可以在单独的一个控件对应的类中实现,例如可以自定义一个MyUIView类继承自UIView,然后在nib文件中将某一个UIView的class设成MyUIView, 随后在该View中添加的子view都可以先在MyUIView类中定义相应的IBOutlet或IBAction, 然后再建立连接。当然也可以在file owner的类中定义。要注意的一点是通过loadNibNamed加载nib文件时owner参数一定要设对,要与nib文件中指定file owner一致。
loadNibNamed与initWithNibName函数的区别
loadNibNamed是NSBundle中的方法,owner参数要自己指定,该函数返回一个数组,即nib文件描述的UI树形结构的第一层的所有节点。
initWithNibName是UIViewController的方法,owner参数不用自己指定,默认为该UIViewController对应的类。
相关文章推荐
- iOS:代理(delegate)理解及使用
- iOS基础视频_适合初学者入门
- iOS程序运行流程
- 选择ios应用开发培训还是安卓软件培训?
- iOS slider 改变方向变竖
- iOS 摄像头开始闪光灯
- [IOS笔记] - addChildViewController
- IOS学习 多线程NSThread 共享变量 卖票
- iOS: 聊聊 Designated Initializer(指定初始化函数)
- 第一篇还是自我介绍吧
- IOS 杂笔-17(堆区栈区等)
- iOS开发小技巧--cell往左拖拽出现很多按钮的实现,仅仅适用于iOS8以后
- ios学习 多线程NSThread 基本属性
- iOS 富文本属性
- iOS开源项目
- iOS开发之delegate设计模式
- Bios工程师手边事—PCI资源分配
- IOS开发之录音与播放功能
- OC阅读笔记五:异常机制
- iOS开发-单元测试