分享

从xib/nib加载UIViewController/或其子类

 quasiceo 2015-04-23
努力学习着......

从xib/nib加载UIViewController/或其子类

【之所以】
xib、nib文件目的在于为控件快速定位
这里仅针对UIViewController和其子类

【How】
这里整理并描述两种方式的使用:
1、UIViewController initWithNibName
主要代码如下:
    StarterController *starter = [[StarterController alloc] initWithNibName:@"StarterController" bundle:nil];
    NSLog(@"starter = %@" ,starter);
    if (starter)
    {
        NSLog(@"%@ parent controller is %@" ,starter ,starter.parentViewController);
        NSLog(@"%@ nav controller is %@" ,starter ,starter.navigationController);

    }

注意参数bundle,暂时不知道怎么获取,后续解答。

StarterController.xib,如图,此处File Owner ,Class = StarterController,此类继承UIViewController


2、NSBundle loadNibNamed
主要代码如下:
    NSArray *niblets = [[NSBundle mainBundle] loadNibNamed:@"sample" owner:self options:NULL];
    for (id theObject in niblets)
    {
        if ([theObject isKindOfClass:[UIViewController class]])
            [self.navigationController pushViewController:theObject animated:YES];
    }

sample.xib,如图,特别注意File Owner,这个类是NSObject


【其他】
在实践中,出现一个问题:“loaded the...nib but the view outlet was not set”
解决参见:
http://hi.baidu.com/sushii/blog/item/17df66084dd7abdd3ac763bb.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多