zoukankan      html  css  js  c++  java
  • 从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


    无论生活、还是技术,一切都不断的学习和更新~~~努力~
  • 相关阅读:
    剑指 Offer 59
    665. 非递减数列
    1423. 可获得的最大点数(滑动窗口)
    1208. 尽可能使字符串相等(双指针、滑动窗口)
    643. 子数组最大平均数 I(滑动窗口)
    剑指 Offer 52. 两个链表的第一个公共节点
    295. 数据流的中位数
    888. 公平的糖果棒交换(数组、哈希表)
    Seaborn绘图工具
    Office Politics
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2076456.html
Copyright © 2011-2022 走看看