Skip to content

Latest commit

 

History

History
31 lines (26 loc) · 1.08 KB

MyXibView Demo.md

File metadata and controls

31 lines (26 loc) · 1.08 KB

MyXibView Demo

cocoa中使用Xib加载视图,与iOS略有不同,在iOS系统中,苹果对NSNib进行了单独的封装,提供了专门的一个分类供UIKit使用.这造成了在刚刚接触cocoa的时候,会有一些误解.记录如下.

操作步骤:

1.创建xib文件,并设置xib中的视图的class类型,以及file's Owner

2.创建视图类,添加核心代码

 // 加载nib
    NSNib *myXib = [[NSNib alloc]initWithNibNamed:@"MyXibView" bundle:nil];
    // 创建xib视图数组(一个xib中可能有多个view)
    NSArray *xibViews;
    // 从xib中加载视图到定义的视图数组中(topLevelObjects的参数为二级指针)
    BOOL isInstant = [myXib instantiateWithOwner:self topLevelObjects:&xibViews];
    if (isInstant) {  // 加载成功
        // 遍历视图数组
        for (MyXibView *view in xibViews) {
            if (![view isKindOfClass:self]) {
                continue;
            }
            // 找到后返回视图
            return view;
        }
        
    }
    return nil;