ViewControllerの初期化ではまったのでメモ。
ViewControllerのコンストラクタ内でViewの初期化をしようとするとViewが初期化されなかった。
理由はコンストラクタ内ではまだViewにオブジェクトが詰められていないため。
- (id)initWithNibName:(NSString *)nibNameOrNil stock:(Stock*)stock { self = [self initWithNibName:nibNameOrNil bundle:nil]; self.stock = stock; self.stockNameLabel.text = self.stock.stockName; //self.stockNameLabelがまだnilなので初期化できない。が、エラーもでないのでわかりにくい return self; }
viewWillAppearメソッドの中で初期化するのが正しい。
- (void)viewWillAppear:(BOOL)animated{ self.stockNameLabel.text = self.stock.stockName; self.chartImageView.image = self.stock.chartImage; [super viewWillAppear:animated]; }