如何将视图 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 的表格单元加载中

如何将 UITableView 作为子视图添加到 xib 中的 UIView?

如何将 xib 加载到一个视图控制器中的两个容器视图中

如何将数组发送到子视图然后打印到标签中?

添加和布局从 xib 加载的子视图到自定义单元格

添加子视图不起作用?