并加载NIB/XIB文件?

fuz*_*oat 5 iphone cocoa-touch objective-c

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

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

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

-(id)init {
    self = [super init];
    if(self) {
        do things ...
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

欢呼加里.

小智 7

从文档:

如果为nibName参数指定nil并且不覆盖自定义子类中的loadView方法,则默认视图控制器行为是查找名称(不带.nib扩展名)与视图控制器类的名称匹配的nib文件.如果找到一个,则类名将成为nibName属性的值,这会导致相应的nib文件与此视图控制器关联.