【问题标题】:and loading NIB / XIB files?并加载 NIB / XIB 文件?
【发布时间】:2010-06-01 16:49:57
【问题描述】:

我有点好奇,我有一个视图控制器类和一个 NIB/XIB(两者都命名为“MapViewController”)如果我执行以下操作,它会加载具有匹配名称的 NIB。

-(id)init {
    self = [super initWithNibName:@"MapViewController" bundle:nil];
    if(self) {
        do things ...
    }
    return self;
}

另一方面,如果我只是指定 [super init] Xcode 是否只是寻找与控制器名称匹配的 NIB,这是如何工作的?

-(id)init {
    self = [super init];
    if(self) {
        do things ...
    }
    return self;
}

干杯加里。

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案1】:

    来自文档:

    如果您为 nibName 指定 nil 参数并且不要覆盖 自定义中的 loadView 方法 子类,默认视图控制器 行为是寻找一个 nib 文件 谁的名字(没有 .nib 扩展名)匹配您的名称 视图控制器类。如果它发现 一、类名变成值 的 nibName 属性,结果 在相应的 nib 文件中 与此视图控制器关联。

    【讨论】:

    • 谢谢,我现在看到了,我在init下看迷路了。
    【解决方案2】:

    是的,在这种特殊情况下它会起作用。根据UIViewController,调用init 类似于使用nil 作为笔尖名称调用initWithNibName:bundle:

    如果您为 nibName 指定 nil 参数并且不要覆盖 自定义中的 loadView 方法 子类,默认视图控制器 行为是寻找一个 nib 文件 谁的名字(没有 .nib 扩展名)匹配您的名称 视图控制器类。如果它发现 一、类名变成值 的 nibName 属性,结果 在相应的 nib 文件中 与此视图控制器关联。

    【讨论】:

      【解决方案3】:

      Xcode 是否只是寻找一个 NIB 匹配控制器的名称

      差不多:

      如果您为 nibName 指定 nil 参数并且不要覆盖 自定义中的 loadView 方法 子类,默认视图控制器 行为是寻找一个 nib 文件 谁的名字(没有 .nib 扩展名)匹配您的名称 视图控制器类。如果它发现 一、类名变成值 的 nibName 属性,结果 在相应的 nib 文件中 与此视图控制器关联。

      【讨论】:

        猜你喜欢
        • 2017-01-08
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多