2011-12-04 9 views
58

ビューが手動で読み込まれると、開発者は初期化に際して制御を続け、呼び出すイニシャライザ、設定する変数などを選択します。ストーリーボード経由でロードされたときにビューがどのように初期化されますか?

ストーリーボードからビューが読み込まれると、イニシャライザ?変数をどこに設定する必要があります。ビューを読み込んだら、使用可能にしたいですか?

ここでの手順を理解してください。どのようにクラスのインスタンスがここで作成され、それを作成し、どのように介入し、好みに合わせることができますか?

答えて

89

ペンまたはストーリーボードからビューをロードすると、-initWithCoder:メソッドが呼び出されます。 -initWithFrame:のように、-initWithCoder:はUIViewの指定された初期化子です。 UIViewサブクラスのカスタム初期化を行う場合は、両方のメソッドで確実に行う必要があります。一般的な手法の1つは、-initWithFrame:-initWithCoder:の両方から呼び出す共通の初期化メソッドを追加することです。詳細な説明については、my answerCustom view and implementing init method?を参照してください。

を、あなたのインターフェースを設計することにInterface Builderを使用している場合は、あなたのビューオブジェクトがその後のnib ファイルからロードされたときに、このメソッドは 呼び出されません:-initWithFrame:のマニュアルに説明していることを

注意nibファイル内のオブジェクトは再構成され、 のinitWithCoder:メソッドを使用して初期化され、 の属性がnibファイルに格納された属性と一致するように変更されます。

関連する問題