Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 什么是文件&x2019;在这种情况下,XIB的所有者是谁?_Ios_Uiview_Uiviewcontroller_Xib_Custom Component - Fatal编程技术网

Ios 什么是文件&x2019;在这种情况下,XIB的所有者是谁?

Ios 什么是文件&x2019;在这种情况下,XIB的所有者是谁?,ios,uiview,uiviewcontroller,xib,custom-component,Ios,Uiview,Uiviewcontroller,Xib,Custom Component,我搜索类似的问题已经有一段时间了,其中大部分都提到了UIViewController的xib内容。我尝试为自定义viewController模型添加一个xib文件,发现其xib文件的所有者应该是自定义viewController模型的类——这是合理的。但是,当我为UIView模型创建xib时,为什么情况会有所不同——下面是一个示例: 我创建了名为“KWView”的UIView模型(KWView.h和KWView.m) 然后我为这个模型创建xib,通过 KWView *oneView = [[[

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

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

 KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
这个Xib文件的所有者名称是“NSObject”(然后我再尝试其他方法,无论我选择什么,它都能顺利运行),在那里,我选择视图的自定义类为“KWView”[这个Xib名为“KWView.Xib”]

问题是:

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


2.通常,我应该将自定义视图的Xib文件的所有者设置为自定义视图的类还是要将此视图添加到的viewController的类?或者将其设置为“NSObject”

问题的答案取决于在nib加载时打算如何从nib中提取视图。您将提取它,正如您帮助我们看到的,如下所示:

KWView *oneView = 
    [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil]
        lastObject];
这意味着您在这里没有使用
所有者:
进行任何操作-它是
nil
。因此,您可以将nib文件的所有者留在NSObject


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

有关nib加载过程的更多详细信息,请参阅我在这里的讨论:这让我困惑了很长一段时间。。我是iOS的新生。谢谢,你帮了我一个大忙