Joh*_*lph 6 model-view-controller objective-c interface-builder uikit nib
我尝试覆盖UIViewController子类的默认initWithNibName指定初始化程序,如下所示:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
我还在头文件中包含了它的定义.但是,当我的Application Delegate nib加载viewcontroller时,不调用初始化程序,只调用-viewDidLoad.
那个nib magic如何实例化我的视图控制器呢?为什么所有的XCode模板都说明了
//指定的初始化程序.如果以编程方式创建控制器并希望执行不适合viewDidLoad的自定义,则覆盖.
它是否正确当从另一个nib加载viewcontroller时,我的initWithNibName没有被调用?
new*_*cct 17
您需要将初始化代码放在awakeFromNib方法中,以便在从Nib加载时运行它.Nib文件包含它包含的对象的存档版本,因此原则上它们不需要再次初始化.
| 归档时间: |
|
| 查看次数: |
5366 次 |
| 最近记录: |