设置xib文件的文件所有者

use*_*339 5 objective-c ios

嗨,我正在读一本我不得不处理这种情况的书.我创建了一个名为HeaderView.xib.Then I的File OwnerXIB文件,将此XIB文件连接到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;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将指向XIB文件(我在XIB文件上建立连接的那个)上的相应视图的headerView出口ItemsViewController点.我的问题是,为什么我必须两次指定所有者?(例如,如我在此端口的开头所提到的那样在XIB中进行一次,并且第二次,在代码中的上面,例如,owner: self).

das*_*ght 6

您没有两次指定文件所有者:

  • 第一次(在XIB文件中)您指定了文件所有者的类型 ; 这对于Interface Builder来说是必要的,以了解它可以连接哪些插座.
  • 第二次(在Objective C代码中)您指定了所有者的实例.这在运行时必须知道出口连接的对象.