从nib加载时未调用UIViewController子类init

我尝试覆盖UIViewController子类的默认initWithNibName指定初始值设定项,如下所示:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        // Custom initialization
    }
    return self;
}

我还在头文件中包含了它的定义。 但是,当我的应用程序委托nib加载视图控制器时,不会调用初始化程序,只调用-viewDidLoad。

那么笔尖魔法如何实例化我的视图控制器呢? 为什么所有的XCode模板都处于状态

//指定的初始化器。 如果以编程方式创建控制器并且要执行不适合viewDidLoad的自定义,则覆盖。

它是否正确我的initWithNibName不会调用时,视图控制器加载形成另一个笔尖?


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

链接地址: http://www.djcxy.com/p/15375.html

上一篇: UIViewController subclass init not called when loading from nib

下一篇: How to add UITableView to one of several subviews using storyboard