ViewController init? - PullRequest
       12

ViewController init?

14 голосов
/ 26 марта 2010

Я только что заметил, что мой ViewController не вызывает init (см. Ниже) при запуске.

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

Есть ли причина для этого, или он заменен на viewDidLoad

-(void)viewDidLoad {
    otherStuff ..
    [super viewDidLoad];
}

Ура Гэри

Ответы [ 4 ]

16 голосов
/ 26 марта 2010

Не заменяется на viewDidLoad. Просто init не вызывается initWithNibName:bundle:.

Я просто пишу свой установочный код в viewDidLoad.

5 голосов
/ 22 января 2016

Если ваш контроллер вида инициализируется из раскадровки, то вы можете использовать:

- (instancetype)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];
    if (self) {
        // do init here
    }
    return self;
}
3 голосов
/ 26 марта 2010

обычно используется awakeFromNib.

0 голосов
/ 26 марта 2010
  • (void) init отлично работает, если вы создаете объект в коде, но вы ДОЛЖНЫ быть уверены, что это тот, который вы вызываете. Бесполезно выделять шаблонный метод initWithNibName: bundle: и затем вызывать другой.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...