【发布时间】:2011-06-21 20:13:46
【问题描述】:
假设我有一个 UIView,我想在多个视图控制器中重用它,因为它是一个相当通用的 UIView 对象,具有很高的重用价值(如 UITextField 或 UISegmentedControl 对象)。根据我的理解,如果我在代码中编写 UIView,而不是使用 Interface Builder 制作 XIB,那么重用这个 UIView 会容易得多。我得出了这个结论,因为如果 UIView 是用代码编写的,那么我可以简单地在任何视图控制器中初始化该 UIView 的新实例:
MyGreatReusableView *greatReusableView = [[MyGreatReusableView alloc] initWithFrame:CGRectMake(...)];
...然后直接访问该 UIView 的属性和属性,就像使用股票 UIView 控件(例如 UITextField 与它的 .text、.textColor 等属性一样)。
但是,如果我将 UIView 创建为 XIB,则它必须(通过文件所有者或 XIB 中视图对象上的 IBOutlet)绑定到特定视图控制器,因此只能在该视图中使用控制器。此外,我只能使用连接到该视图控制器的 IBOutlets 访问 XIB 上控件的属性。
我认为我完全误解了关于 XIB 文件的一些内容,因为这似乎是一个相当大的限制!如果有人可以澄清是否可以在多个视图控制器中重用 XIB 文件,如果可以,请提供基于代码的解决方案与基于 XIB 的解决方案的示例,我将非常感激。
提前感谢您的帮助!
【问题讨论】:
标签: iphone uiview uikit interface-builder xib