私は単純なクイズアプリケーションを設計しています。アプリケーションは、さまざまなタイプのQuizQuestionsを表示する必要があります。 QuizQuestionの各タイプには、異なる動作とUIがあります。私は、Interface BuilderでQuizQuestionの各タイプを設計できるようにしたいと思い alt text http://dl.getdropbox.com/u/907284/Picture%201.pngiPhoneのサブビューデザイン(UIViewとUIViewController)
:
ユーザーインターフェイスは、このようなものになります。
例えば、MultipleChoiceQuizQuestionは次のようになります。 alt text http://dl.getdropbox.com/u/907284/Picture%202.png
はもともと、私はQuizQuestionクラスのUIViewControllerを作ることを計画しました。しかし、Appleのドキュメントでは、UIViewControllerはページ全体を表示するためにのみ使用するべきであることを読んでいます。
したがって、UIViewControllerとQuizQuestionクラスのUIViewのサブクラスであるQuizController(画面全体、たとえば前/次のボタンを管理する)を作成しました。
しかし、(IBで作成された)このUIViewのをロードするために、私は[1]私のコンストラクタで次の手順を実行する必要があります。
//MultipleQuizQuestion.m
+(id)createInstance {
UIViewController *useless = [[UIViewController alloc] initWithNibName:@"MultipleQuizQuestion" bundle:nil];
UIView *view = [[useless.view retain] autorelease];
[useless release];
return view; // probably has a memory leak or something
}
このタイプのアクセスは、標準であるか、またはオブジェクト指向していないようです。このタイプのコードは正常/許容可能ですか?それとも私はデザインのどこかに貧しい選択肢を作ったのですか?
ありがとう、(明確にするため)
編集:私はViewControllerをのような... multipleChoiceViewを制御するために、別のクラスを持っているしたいのですが、どうやらそれだけで全体のウィンドウのためです。たぶん私はMultipleChoiceViewManager(コントローラではない!)を作成し、その代わりにファイルの所有者を設定する必要がありますか?
ありがとうございますが、私はmultipleChoiceViewを制御する別のクラスを持っていたいと思います... ViewControllerのように、それは明らかにそれは全ウィンドウに対してのみです。 多分私はMultipleChoiceViewManager(コントローラではない!)を作成し、その代わりにFile's Ownerを設定する必要がありますか? – tba
あなたはあなたがそれをやっていることをより困難にしていると思います。委任は、関係なく使用しなければならないものなので、自分のクラスを使用する場所、または使用するビューコントローラクラスでコードをどこに配置するかを決定する必要があります。それはあなた次第ですが、自分のクラスに入れて何かを得ることはないと思います。宜しくお願いします。 –