如何将视图 XIB 作为子视图加载到视图控制器 XIB 中
Posted
技术标签:
【中文标题】如何将视图 XIB 作为子视图加载到视图控制器 XIB 中【英文标题】:How to load a view XIB as a subview into a view controller XIB 【发布时间】:2010-12-20 22:06:16 【问题描述】:我有一个使用 IB 文件制作的自定义视图,因为它非常复杂:(RotatorView.xib/.h/.m)。 我想将 RotatorView 作为子视图添加到视图控制器。我可以使用以下方式以编程方式执行此操作:
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"RotatorView"
owner:self options:nil];
但我不想那样做。如果我可以将 RotatorView 添加到 Interface Builder 中的 View Controller 的画布上,那对我的设计会更好。这样我就可以使用 IB 来管理每个 RotatorView 实例的属性,而不是在每个类中以编程方式设置属性。有没有办法可以将带有 XIB 的自定义视图添加到父视图控制器?我是否必须构建一个 IB 插件才能做到这一点?
【问题讨论】:
【参考方案1】:您可以在 IB 中将 UIView 控件添加到画布并更改其类名以匹配您的自定义视图类名。
虽然这将使您免于以编程方式调用loadNibNamed
方法,但您将无法直接从 IB 设置自定义属性。
这样做的唯一解决方案是构建一个IB plugin,但不幸的是,您似乎无法制作 Cocoa Touch IB 插件,因为您无法制作 Cocoa Touch 框架。
【讨论】:
我做了更多的研究,得出了同样的结论。不过,这似乎是一个奇怪的遗漏。我可以使用 IB 构建自定义视图,但无法将该自定义视图嵌入到另一个视图控制器 XIB 中。以上是关于如何将视图 XIB 作为子视图加载到视图控制器 XIB 中的主要内容,如果未能解决你的问题,请参考以下文章
如何将 xib 的子视图显示到另一个 xib 的表格单元加载中