【问题标题】:What is File’s owner in XIB in this case?在这种情况下,XIB 中 File 的所有者是什么?
【发布时间】:2015-09-28 19:27:46
【问题描述】:

我已经搜索了很长一段时间的类似问题,其中大部分都提到了 UIViewController 的 xib 东西。 我尝试为我的自定义 viewController 模型添加一个 xib 文件,发现它的 Xib 的 File's Owner 应该是我的自定义 viewController 模型的类——这是合理的。但是为什么当我为我的 UIView 模型创建 xib 时情况会有所不同 - 一个示例如下:

我创建了名为“KWView”(KWView.h 和 KWView.m)的 UIView 模型 然后我为这个模型创建 xib,初始化它

 KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];

这个 Xib 的 File's Owner name 是“NSObject”(然后我再试其他的,不管我选择什么,它运行顺利),然后我选择视图的自定义类为“KWView”[这个xib名为“KWView.xib”]

问题是:

1.无论我更改自定义视图的 Xib 文件所有者名称,它都能正常工作。如果是这样,这个文件的所有者在这里做了什么工作,或者说,为什么会发生这种情况?

2.一般情况下,我应该将自定义视图的Xib's File's Owner设置为我的自定义视图的类还是要添加该视图的viewController的类?或者只是将其设置为“NSObject”?

【问题讨论】:

    标签: ios uiview uiviewcontroller xib custom-component


    【解决方案1】:

    您的问题的答案取决于您打算如何在 nib-load 时从 nib 中提取视图。正如您向我们展示的那样,您将提取它,如下所示:

    KWView *oneView = 
        [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil]
            lastObject];
    

    这意味着您在这里没有使用owner: 来做任何事情——它是nil。因此,您可以将 nib 文件的所有者留在 NSObject。

    文件所有者的目的是允许您在 nib 中建立视图(或其子视图)与加载时将成为真正所有者的对象之间的操作和出口连接时间——就像一个视图控制器(所有者)和它的view(视图控制器的主视图)。但在你的情况下,没有这样的真正所有者,也没有这样的 Action 或 Outlet 连接。

    【讨论】:

    猜你喜欢
    • 2013-04-23
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2020-04-04
    • 2017-03-28
    • 2016-08-26
    • 1970-01-01
    • 2015-01-30
    相关资源
    最近更新 更多