为什么我的UIViewController初始化程序从未调用过?

时间:2010-04-12 13:46:01

标签: iphone

我从一个新模板中创建了一个基于视图的项目。有一个用XIB创建的UIViewController。

在实现中我取消注释并添加了一个NSLog。但这从未被称为:

// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        // Custom initialization
        NSLog(@"nib");
    }
    return self;
}

因为它是从nib / xib初始化的,所以应该调用它,对吧?但事实并非如此。当我把它放在viewDidLoad中时,我得到一条NSLog消息。

1 个答案:

答案 0 :(得分:5)

从nib / xib初始化对象时,-initWithCoder: method将用于初始化。

-initWithNibName:…从未用于取消归档。