当它被一个nib初始化时,在UIViewController子类中调用哪个初始化方法?

3 iphone

App Delegate具有视图控制器的outlet属性,并且在nib中创建视图控制器.

虽然视图控制器的-viewDidLoad方法被加载,但它似乎指定初始化器没有接收到调用:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
    NSLog(@"iniwinib");
    if (self = [super initWithNibName:nibName bundle:nibBundle]) {
        // do stuff
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

我也试过-init,但这也没有接到电话.没有NSLog输出.在这种情况下是否还有其他初始值设定项?

Rob*_*ier 9

-initWithCoder:在这种情况下是初始化器(因为该对象正在从NIB反序列化),但您实际需要的例程是-awakeFromNib.这就是在NIB中的所有对象都已构建完并且所有插座都已连接之后所谓的内容.