从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文件包含它包含的对象的归档版本,因此原则上不需要再次初始化。
上一篇: UIViewController subclass init not called when loading from nib
下一篇: How to add UITableView to one of several subviews using storyboard