首页 > 解决方案 > 为什么新建 UIView 类时,不能一起创建 XIB?

问题描述

如果我创建一个新的 UIViewController 类,我还可以选中Also create XIB file.

但是,为什么当我创建 UIView 时,复选框被禁用,我必须手动创建一个 XIB 将两者(XIB 和 UIView)链接在一起?

在此处输入图像描述

标签: iosxcodeuiviewxib

解决方案


如果我创建一个新的 UIViewController 类,我还可以选中该框以创建 XIB 文件。但是,为什么当我创建 UIView 时,复选框被禁用,我必须手动创建一个 XIB 将两者(XIB 和 UIView)链接在一起?[强调我的。]

因为视图控制器和 nib 之间的关系与视图和 nib 之间的关系完全不同。UIView 和 nib 不会以任何神奇或重要的方式“一起”,就像 UIViewController 及其视图 nib 一样。

  • 对于视图控制器,如果存在与视图控制器类同名的 nib,并且该 nib 中的 File's Owner 类型为视图控制器的类,并且如果 File's Owner 的view出口指向nib 中的顶级 UIView,视图控制器可以从 nib 自动加载其视图。这是一个复杂的安排,您是否知道如何正确配置它是值得怀疑的(即使您知道如何正确配置它也需要大量工作),因此模板提供了为您配置它的功能。这是一个标准的、重要的、自动的关系。

  • 但是有了view和nib就没有这种标准的自动关系,也没有复杂性。如果您希望某个 nib 中的某个视图属于某个 UIView 子类,您只需在其身份检查器中这么说,然后 kaboom 就完成了。所以就这样做并继续前进。


推荐阅读