objective-c – 从nib加载时未调用UIViewController子类init

我尝试覆盖UIViewController子类的认initWithNibName指定初始化程序,如下所示:
- (id)initWithNibName:(Nsstring *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        // Custom initialization
    }
    return self;
}

我还在头文件中包含了它的定义.但是,当我的Application Delegate nib加载viewcontroller时,不调用初始化程序,只调用-viewDidLoad.

那个nib magic如何实例化我的视图控制器呢?为什么所有的XCode模板都说明了

// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.

它是否正确当从另一个nib加载viewcontroller时,我的initWithNibName没有被调用

解决方法

您需要将初始化代码放在awakeFromNib方法中,以便在从Nib加载时运行它. Nib文件包含它包含的对象的存档版本,因此原则上它们不需要再次初始化.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...