为什么" loadNibNamed"方法返回数组?

时间:2016-03-22 07:45:04

标签: ios objective-c nib nsbundle loadnibnamed

当我们使用loadNibNamed方法获取nib文件时,为什么会返回一个数组,是不是nib文件名对应一个nib文件?我尝试打印这个数组的计数,我发现它总是返回1.我希望你能帮我解释一下,谢谢你!以下是代码片段:

 NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"TestView" owner:self options:nil];
 NSLog(@"array's count is %ld",array.count);

3 个答案:

答案 0 :(得分:3)

这是因为NIB / xib文件还可以包含多个视图表示。因此,在数组中,您可以访问所有包含的视图。

答案 1 :(得分:3)

xib返回数组的原因是“。XIB”可以包含多个视图。优点是您不必为一个视图创建一个xib文件。您只需将多个视图放入一个XIB并从数组中访问它

示例
.Xib - > array [view1,view2,view3,view4]

您可以从图片中看到 enter image description here

答案 2 :(得分:1)

感谢讨论here

这是ProjectBuilder / PBX / Interface Builder早期遗留下来的遗留设计。我强烈建议不要使用这种方法,只使用单独的xib文件。我没有看到任何好处。

但是如果决定仍然这样做,你可以拥有多个视图。

enter image description here

使用.first或[0]访问View,使用[1]访问view-2,依此类推。在评论中说,JAL已经说过它不能保证正确返回索引,而且switchfilter或者使用tag s更好视图。