App DelegateにはView Controllerのアウトレットプロパティがあり、View Controllerはペン先に作成されます。nibで初期化されたときに、どの初期化メソッドがUIViewControllerサブクラスで呼び出されますか?
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
NSLog(@"iniwinib");
if (self = [super initWithNibName:nibName bundle:nibBundle]) {
// do stuff
}
return self;
}
私も-initと試みたが、これはまた、コールを受信しません:ビューコントローラの-viewDidLoad方法Althoug
がロードされ、指定イニシャライザは何の呼び出しを受けていないようです。 NSLog出力はありません。この場合に使用しなければならない別のイニシャライザはありますか?
これはあなたが読者に非常に混乱するかもしれないと言ったところです。 NIBに格納されているオブジェクトには、initWithNibName:も送信する必要があります。それは真実ではない。 NIBに格納されたオブジェクトには、initWithNibName:は送信しないでください。 * NIBを所有する*オブジェクトのみがこれを送信する必要があります。 –
well viewControllerはinitWithNibName intializerを持つ唯一のオブジェクトです – Daniel
はい、ビューコントローラはNIBを所有できますが、NIBの内部に格納することもできます。 NIBにUIViewController(またはそのサブクラスのいずれか)を配置するときは、initWithNibName:を送信しないでください。 NIBインスタンス化されたオブジェクトには、初期化子を送信しないでください。 –