iOS 6 で UIViewControllers をいじっていますが、よくわからないことが 1 つあります。initWithNibName、awakeFromNib、setup などのメソッドはいつ使用しますか? また、viewDidLoad、viewWillAppear とどう違うのでしょうか?
1 に答える
-initWithNibName:bundle:
XIBベースのUIViewControllerの標準初期化子です。これは-initWithCoder:
、アーカイブ解除時に送信される残りのCocoa-Touch(いくつかの外れ値を保存)と直接対照的です。この時点では、セットアップ作業は開始されていないことに注意してください。確かに、スーパーコールはNSCoderをジャンプスタートしてXIBを「解凍」しますが、有効なビューインスタンスがないため、このメソッドで設定しようとしないでください。
-awakeFromNib:
指定されたクラスが「解凍」され、NSCoderによって初期化された直後に呼び出されます。この時点では、まだ有効なビューアウトレットがないため、ビュー関連の設定(サブビューの追加、ルートビューのプロパティの設定など)は、-loadView
(割り当てる必要がある唯一の方法)のいずれかで行う必要があります。 to self.view
)、または-viewDidLoad
。
-viewWill/DidAppear
関連付けられたビューがルートとして設定されたとき、またはナビゲーションスタックでその上のビューがポップオフされたときに送信される外観メソッド(必ずしも初期化のインジケーターではありません)です。