その動作を決定するプロパティを持つView Controllerがあります。これらは の親によって設定されprepareForSegue
ます。
これが私のプログラムに引き起こす潜在的なバグは、問題の親がプロパティを設定することが保証されていないことです。そのため、デフォルト値を設定したいと考えています。調査の結果、Objective C のプロパティにはデフォルト値がないことがわかりました。これにより、次のオプションが残りました。
- 子ビューの
viewDidLoad
メソッドでプロパティのデフォルト値を設定します。ただし、調査では、親で後でviewDidLoad
呼び出されるため、親が実際にプロパティを設定するときに、親の値を上書きします。prepareForSegue
- 次に、値を初期化するために使用できると考え
(id) init
ましたが、少なくともストーリーボードを使用する場合、このメソッドはまったく呼び出されません!
オブジェクトがデフォルト値に初期化されるという回避策があるかもしれませんが、この場合、渡したいのは BOOL だけです。また、ブール値は正しく初期化されていなくても値を持つため、非 nil かどうかをテストすることはできません。
prepareForSegue
親の前に子View Controllerの値を初期化する機会はありますか?