дизайн подзаписи iPhone (UIView vs UIViewController)
Я разрабатываю простое приложение для викторины. Приложение должно отображать различные типы QuizQuestions. Каждый тип QuizQuestion имеет свое поведение и пользовательский интерфейс.
Пользовательский интерфейс будет примерно таким: альтернативный текст http://dl.getdropbox.com/u/907284/Picture%201.png
Я хотел бы иметь возможность проектировать каждый тип QuizQuestion в Интерфейсном Разработчике.
Например, MultipleChoiceQuizQuestion будет выглядеть так: альтернативный текст http://dl.getdropbox.com/u/907284/Picture%202.png
Первоначально я планировал сделать класс QuizQuestion UIViewController. Тем не менее, я прочитал в документации Apple, что UIViewControllers следует использовать только для отображения всей страницы.
Поэтому я сделал свой QuizController (который управляет всем экраном, например кнопками prev / next) UIViewController, а мой класс QuizQuestion - подклассом UIView.
Однако, чтобы загрузить этот UIView (созданный в IB), я должен[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
}
Этот тип доступа не кажется стандартным или объектно-ориентированным. Является ли этот тип кода нормальным / приемлемым? Или я сделал плохой выбор где-то в моем дизайне?
Спасибо,
edit (for clarity): Я хотел бы иметь отдельный класс для управления множественным представлением ... как ViewController, но, очевидно, это только для целых окон. Может быть, мне следует создать MultipleChoiceViewManager (не контроллер!) И установить вместо него владельца файла?