У меня есть приложение для iPhone, которое представляет анкету.Анкета состоит из нескольких вопросов.
Я создал класс QuestionnaireViewController
, который загружает несколько QuestionViewController
объектов в зависимости от количества вопросов в этой анкете (это извлекается из внешнего источника данных).
Это прекрасно работает.
Приложение сейчас проходит дальнейшую итерацию, а требования немного сложнее.Приведенный выше прототип загружает вопросы с одинаковым представлением вопросов (т. Е. Один тип вопроса).Однако существует несколько типов вопросов (на основе слайдера, ввода текста и т. Д.).
Все типы вопросов имеют подмножество свойств:
Вопросы имеют заголовок, идентификатор, идентификатор раздела и номер вопроса.
Виды вопросов будут отличаться в зависимости от способа ввода данных.Некоторые требуют ввода данных с помощью ползунка, в то время как другие требуют ввода текста.
Это сразу вызывает структуру суперкласса / подкласса:
Question
SliderQuestions
TextInputQuestions
etc
Мои вопросы:
1) Как я могу загрузить определенный подкласс представления на основе некоторого значения данных?
например
if ([questionType isEqualToString:@"slider"]) {
//load slider view
} else if ([questionType isEqualToString:@"textInput"]) {
//load text input view
}
Нужно ли создавать View AND ViewController для каждого класса?Как я могу смоделировать эту структуру подкласса суперкласса?
Моя путаница заключается в создании представлений и контроллеров представлений.Очевидно, что мне нужно новое представление для обработки конкретных компонентов вопроса, таких как добавление ползунка к одному и ввод текста в другое, но как мне показать общие данные (свойства суперкласса), не дублируя каждый вид?