使用loadNibNamed时所有者的含义是什么?

时间:2013-12-17 02:46:10

标签: ios objective-c loadnibnamed

Apple Doc说 nib文件中最重要的对象之一是文件所有者对象,但它似乎是nib文件中的文件所有者,而不是LoadNibName设置的文件所有者方法。我想知道它们之间的区别是什么?

以下是一个例子:

我从xib自定义alertView并提供如下静态类方法:

+(CustomAlert *)sharedAlert{
    CustomAlert *alert = [[[NSBundle mainBundle] loadNibNamed:@"CustomAlert" owner:nil options:nil]lastObject];
    return alert;
}

我有一种方法可以在视图上显示提醒

- (void)showInView:(UIView *)view{
    [view addSubview:self];
}

并在我的viewController中:

- (IBAction)buttonPressed:(id)sender{
    CustomAlert *alert = [CustomAlert sharedAlert];
    [alert showInView:self.view];
}

在我的情况下效果很好,所以有必要在[[[NSBundle mainBundle] loadNibNamed: owner: options:设置所有者吗?

1 个答案:

答案 0 :(得分:2)

假设您有一个带有一个tableview的nib文件,并且tableviews委托和数据源连接到接口构建器中的“files owner”。如果将文件所有者设置为任何对象,则该对象将是tableview的数据源和委托。这适用于连接到文件所有者的任何内容。