并加载 NIB / XIB 文件?
Posted
技术标签:
【中文标题】并加载 NIB / XIB 文件?【英文标题】:and loading NIB / XIB files? 【发布时间】: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;
干杯加里。
【问题讨论】:
【参考方案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 文件中 与此视图控制器关联。
【讨论】:
以上是关于并加载 NIB / XIB 文件?的主要内容,如果未能解决你的问题,请参考以下文章
Objective-c 无法加载 nib 文件:RoosterView.xib