дизайн подзаписи 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
}
Этот тип доступа не кажется стандартным или объектно-ориентированным. Является ли этот тип кода нормальным / приемлемым? Или я сделал плохой выбор где-то в моем дизайне?
Спасибо,
редактировать (для ясности): яЯ хотел бы иметь отдельный класс для управления множественным представлением ... как ViewController, но очевидно, чтотолько для целых окон. Может быть, я должен сделать MultipleChoiceViewManager (не контроллер!) И установить файл 'Владелец этого вместо?