ViewController初始化?

fuz*_*oat 14 iphone cocoa-touch objective-c

我刚刚注意到我的ViewController在启动时没有调用init(见下文).

-(id)init {
    self = [super init];
    if(self) {
        NSLog(@"_init: %@", [self class]);
        otherStuff...
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

是否有这样的原因,或者它被viewDidLoad取代

-(void)viewDidLoad {
    otherStuff ..
    [super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)

欢呼加里

Fra*_*rar 16

它没有被替换viewDidLoad.只是init没有被调用initWithNibName:bundle:.

我只是编写我的设置代码viewDidLoad.


Tho*_*asW 5

如果正在从故事板初始化视图控制器,则可以使用:

- (instancetype)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];
    if (self) {
        // do init here
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)