Projekt widoku iPhone'a (UIView vs UIViewController)

Projektuję prostą aplikację Quiz. Aplikacja musi wyświetlać różne typy QuizQuestions. Każdy typ QuizQuestion ma wyraźne zachowanie i interfejs użytkownika.

Interfejs użytkownika będzie wyglądał mniej więcej tak:alt tekst http://dl.getdropbox.com/u/907284/Picture%201.png

Chciałbym móc zaprojektować każdy typ QuizQuestion w Interface Builder.

Na przykład MultipleChoiceQuizQuestion wygląda tak:alt tekst http://dl.getdropbox.com/u/907284/Picture%202.png

Pierwotnie planowałem uczynić klasę QuizQuestion kontrolerem UIViewController. Jednak przeczytałem w dokumentacji Apple, że UIViewControllers powinny być używane tylko do wyświetlania całej strony.

Dlatego zrobiłem mój QuizController (który zarządza całym ekranem np. Prev / next przyciski) UIViewController i moja klasa QuizQuestion podklasą UIView.

Aby jednak załadować ten UIView (utworzony w IB), muszę[1] wykonaj w moim konstruktorze następujące czynności:

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

Ten typ dostępu nie wydaje się być standardowy ani obiektowy. Czy ten typ kodu jest normalny / akceptowalny? A może gdzieś w moim projekcie dokonałem złego wyboru?

Dziękuję Ci,

edytuj (dla jasności): Chciałbym mieć oddzielną klasę do kontrolowania multipleChoiceView ... jak ViewController, ale najwyraźniej to tylko dla całych okien. Może powinienem utworzyć MultipleChoiceViewManager (nie kontroler!) I zamiast tego ustawić właściciela pliku na to?

questionAnswers(2)

yourAnswerToTheQuestion