是否可以在 nib 中使用视图控制器?还是只是 UIViews?
Posted
技术标签:
【中文标题】是否可以在 nib 中使用视图控制器?还是只是 UIViews?【英文标题】:Is it possible to have view controllers in nibs? Or is it just UIViews? 【发布时间】:2014-02-12 02:17:47 【问题描述】:这似乎是一个非常愚蠢的问题,但是当我创建一个 nib 文件并将 UIViewController 放入其中时,我无法向其中添加任何内容。但是如果我做一个 UIView 就可以了。如果我创建一个 UIViewController 并选择“使用 nib”,它会创建一个包含 UIView 的 nib,而不是 UIViewController。
这与允许您将 UIViewControllers 和 UIViews 分开的故事板不同。笔尖不是这样吗?
【问题讨论】:
UIViewController 用于实例化和拥有 NIB 内部的对象。除非它是一个子视图控制器,否则拥有一个内部的是没有意义的。 【参考方案1】:笔尖中可以有任何对象。从字面上看,您的应用程序中可以存在的任何对象都可以在 nib 中。
但是,当您进行基于 nib(而不是基于故事板)的设计时,您通常不会将视图控制器放在 nib 中。通常的方法是在代码中创建视图控制器,通常使用initWithNibName:bundle:
方法。 nib 将使用视图控制器配置为“文件的所有者”,这是对 nib 中不包含的外部对象的引用。 nib 包含视图控制器使用的视图,连接到 VC 的 view
出口。
【讨论】:
以上是关于是否可以在 nib 中使用视图控制器?还是只是 UIViews?的主要内容,如果未能解决你的问题,请参考以下文章
为 StoryBoard 中 ViewController 中使用的 UIView 加载 Nib
目标 C:使用代码实现导航控制器时如何在 NIB 中添加工具栏