7

我会知道课堂是如何运作loadNibNamedNSBundle;在某些文件中,我发现类似

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL];

没有返回值;只是在一个方法中调用(例如cellForRowAtIndexPath,如果我想自定义我的单元格)。在其他文件中,我发现:

NSArray* vett=[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL];

在这种情况下,例如,在 中cellForRowAtIndexPath,我可以

 return [vett lastObject];

或类似的东西。后一种方法在我看来很清楚;我将笔尖加载到向量中,然后使用向量元素。问题是要了解首先要做的事情:

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL];

没有返回值,没有单元格引用……我的笔尖的对象在哪里?他们是如何处理的?我不明白它是如何工作的

4

2 回答 2

5

例如,您有一个带有自定义 nib @"CustomView" 的子类 UIView

你可以加载它:

    NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];
    CustomView * customView = [arr firstObject];
于 2015-09-05T01:44:23.023 回答
4

此方法返回 nib 中的对象数组。例如,如果您想实例化一个自定义视图,您将希望以 anthu 描述的方式使用返回值。

NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil];
CustomView * customView = [arr firstObject];

但是,如果您想使用 xib 配置文件的所有者(请注意,您可以将所有者传递给此方法),您可能对返回的数组不感兴趣。例如,如果 xib 将文件所有者的 IBActions 和 IBOutlets 连接到 xib 中的元素。

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:nil];

您也可以将这两种方法结合起来。

于 2015-09-05T09:34:17.513 回答