iPhone-Subview-Design (UIView vs UIViewController)

Ich entwerfe eine einfache Quizanwendung. Die Anwendung muss verschiedene Arten von QuizQuestions anzeigen. Jeder QuizQuestion-Typ hat ein unterschiedliches Verhalten und eine unterschiedliche Benutzeroberfläche.

Die Benutzeroberfläche sieht ungefähr so ​​aus:Alternativtext http://dl.getdropbox.com/u/907284/Picture%201.png

Ich möchte in der Lage sein, jede Art von QuizQuestion im Interface Builder zu entwerfen.

Ein MultipleChoiceQuizQuestion würde beispielsweise so aussehen:Alternativtext http://dl.getdropbox.com/u/907284/Picture%202.png

Ursprünglich wollte ich die QuizQuestion-Klasse zu einem UIViewController machen. Ich habe jedoch in der Apple-Dokumentation gelesen, dass UIViewController nur zum Anzeigen einer ganzen Seite verwendet werden sollten.

Aus diesem Grund habe ich meinen QuizController (der den gesamten Bildschirm verwaltet, z. B. die Schaltflächen "Zurück" und "Weiter") zu einem UIViewController und meine QuizQuestion-Klasse zu einer Unterklasse von UIView gemacht.

Um dieses UIView (erstellt in IB) zu laden, muss ich allerdings[1] mache folgendes in meinem Konstruktor:

//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
}

Diese Art des Zugriffs scheint nicht standardisiert oder objektorientiert zu sein. Ist diese Art von Code normal / akzeptabel? Oder habe ich irgendwo in meinem Design eine schlechte Wahl getroffen?

Vielen Dank,

Bearbeiten (zur Verdeutlichung): Ich hätte gerne eine separate Klasse, um multipleChoiceView zu steuern ... wie einen ViewController, aber anscheinend nur für ganze Fenster. Vielleicht sollte ich einen MultipleChoiceViewManager (nicht Controller!) Erstellen und stattdessen den Eigentümer der Datei darauf einstellen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage