嗨,我正在读一本我必须处理这种情况的书。
我创建了一个名为HeaderView.xib.
的XIB文件然后我连接了这个XIB的File Owner
档案到ItemsViewController
。到目前为止一切都很好。我也联系了
ItemsViewController的一些出口,带有XIB上的视图。
现在,在ItemsViewController
我必须调用这样的代码:
- (UIView *)headerView
{
// If we haven't loaded the headerView yet...
if (!headerView) {
// Load HeaderView.xib
[[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil];
}
return headerView;
}
上面的代码会将headerView
ItemsViewController
的出口设置为相应的
查看XIB文件(我在XIB文件上建立连接的文件)。
我的问题是,为什么我必须 两次 ,指定所有者? (例如,如我在此端口的开头所提到的那样在XIB中进行一次,在代码的上方,第二次,例如,owner: self
)。
答案 0 :(得分:6)
您没有两次指定文件所有者:
答案 1 :(得分:3)
在XIB中指定所有者告诉Xcode控制器理解什么(它有哪些插座),以便它可以提供给你的连接。这是一个班级。
在代码中指定所有者告诉unarchiving进程控制器的哪个实例实际上将实现该角色,因此应该建立与从NIB取消归档的新实例的连接。
答案 2 :(得分:0)
我找到了......当世界不再使用XIB时...... 在您喜欢的文本编辑器中打开XIB或NIB文件
你会在那里找到这条线......
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MyCalssName">
更改班级名称,保存文件,您的文件所有者将被更改。 警告:关闭Xcode(自动重新加载更改)并备份,以防万一你搞砸了。