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