Min*_*ang 2 xib uiviewcontroller uiview custom-component ios
我已经搜索了类似的问题很长一段时间,其中大部分提到了UIViewController的xib内容. 我试图为我的自定义viewController模型添加一个xib文件,并发现它的Xib文件所有者应该是我的自定义viewController模型的类 - 这是合理的.但是当我为我的UIView模型创建一个xib时,为什么情况会有所不同 - 如下所示:
我创建了名为"KWView"(KWView.h和KWView.m)的UIView模型然后我为这个模型创建了xib,初始化它
KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
Run Code Online (Sandbox Code Playgroud)
这个Xib的文件所有者名称是"NSObject" (然后我尝试任何其他更多,无论我选择什么,它运行顺利),在那里,我选择视图的自定义类作为"KWView"[这个xib名为"KWView.xib"]
问题是:
1.无论我更改我的自定义视图的Xib文件的所有者名称,它都有效.如果是这样,这个文件的所有者在这里做了什么工作,或者说,为什么会发生这种情况?
2.一般来说,我应该将自定义视图的Xib文件所有者设置为我的自定义视图的类,还是将该视图添加到的viewController类?或者只是设置它"NSObject"?
mat*_*att 10
您的问题的答案取决于您打算如何在nib-load时从nib中提取视图.正如您向我们展示的那样,您将提取它,如下所示:
KWView *oneView =
[[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil]
lastObject];
Run Code Online (Sandbox Code Playgroud)
这意味着你没有在owner:这里使用任何东西 - 它是nil.因此,您可以将nib的文件所有者留在NSObject.
文件所有者的目的是允许您在nib中建立视图(或其子视图)与将在加载时成为真正所有者的对象之间的Action和Outlet连接- 如视图控制器(所有者)和它view(视图控制器的主视图).但在你的情况下,没有这样的真实所有者,也没有这样的行动或出口连接.