UIView和XIB连接。显示它?

时间:2011-10-17 03:18:05

标签: iphone c++ ios xcode uiview

如何在UIView上显示XIB / NIB文件?我已经搜索过但我没有找到这个。我想在主视图上显示xib界面,我有五个xib文件,我需要每个一个人在UIView上显示!有些人谈到了这段代码,但我实现了这个:

NSArray *screens=[[NSBundle mainBundle] loadNibNamed:@"JaneiroClass" owner:self options:nil];          
        [self addSubview:[screens objectAtIndex:0]];

2 个答案:

答案 0 :(得分:2)

这将从XIB加载视图。 UINib也会缓存,因此您可以快速删除它们。

UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil];
UIView *myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];

instantiateWithOwner返回XIB中顶级对象的数组。在上面的例子中,只有一个视图(包含库中的其他对象)所以我们检索了objectAtIndex:0。

获得视图后,您可以将其添加到其他视图中。例如,您可以在另一个传递此视图的视图上调用addSubView:

[someView addSubView:myView];

答案 1 :(得分:1)

我发布了一篇关于在我的博客http://effectivemobility.blogspot.com/2011/05/using-custom-cells-in-your-uitableview.html

中从笔尖加载自定义视图的文章

关键部分是这个方法

+ (id)customViewForClass:(Class)customClass {
    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(customClass) owner:nil options:nil];
    for ( id currentObject in topLevelObjects ) {
        if ( [currentObject isKindOfClass:customClass] ) {
            return currentObject;
        }
    }

    return nil;
}