0

ViewController名前付きを使用QuestionViewControllerして、カスタムQuestionクラスから質問データを読み込んで表示するクイズ アプリを作成しています。現在、 の をチェックして、 の子をquestionTypeどのように表示する必要があるかを判断しています。次に、次のいずれかを表示するための if/then ステートメントが多数あります。AnswerQuestionanswerTypes

  • buttonType (ラジオ/チェックボックス)
  • 入力フィールドの種類
  • datePickerType
  • (その他のタイプ)

これはうまくいきますが、本当にずさんです。をロードしてから、Questionif/then を使用して質問のタイプを見つけたいと思います。各 questionType のカスタム ビュー コントローラーを作成し、それを表示し、入力が変更されたときに返すプロトコルを追加する必要があると考えています。これはこれを行う正しい方法ですか?必要に応じて将来のタイプを追加できるように、質問のタイプをできるだけ動的に保ちたいと考えています。

私は正しい軌道に乗っていますか?不足している/改善する必要があるものはありますか?

4

1 に答える 1

1

あなたが正しい方向に進んでいるように私には聞こえます。ただし、覚えておくべきことの1つは、質問はすべて同じことを行う必要がある可能性があるということです。たとえば、質問を表示するなどです。これは、次のようにサブクラス化するのに適しています。

UIViewController-> QuestionViewController-> CustomQuestionViewController1 UIViewController-> QuestionViewController-> CustomQuestionViewController2 UIViewController-> QuestionViewController->CustomQuestionViewController3

質問/回答のタイプに関係なく、すべてQuestionの人が表示する特定の情報を持っている必要があります。たとえば、すべての質問に、質問のテキストが表示されている可能UILabel性があります。UITextViewこのラベルの位置、フォントなどは、おそらく質問ごとに変わることはないので、質問ので設定する必要がありますQuestionViewController。一方、回答(あなたが言うように、その形式はおそらく異なるでしょう)は、さまざまなで設定できCustomQuestionViewControllerます。埋め込む。これにより、質問のView Controllerでコードが重複する可能性が大幅に減少します。これは、同じことを内部で実行できるためQuestionViewControllerです。

以下のようにサブクラス化を行った場合...

UIViewController->CustomQuestionViewController1

UIViewController->CustomQuestionViewController2

基本的な質問の表示を設定する重複コードがたくさんあることになります。

また、CustomQuestionViewController1ハハよりも良い名前を付けてください。

于 2012-09-18T17:32:35.947 に答える