2016-10-05 5 views
-2

Я хотел бы выполнить тест по 20 вопросам в Swift, тот же viewcontroller должен повторяться каждый раз, когда следующая кнопка нажата до последнего вопроса, но это создает очередь диспетчеров view, это не должно происходить. Я читал, и протокол NSCopying мог мне помочь, но я не могу полностью понять, каким образом. Кто-то может объяснить мне или привести пример правильного способа использования протокола NSCopying в этом случае.NSCopying Protocol Swift

+1

Вы не хотите использовать 'NSCopying' для этого. Если вы не хотите нажимать новый контроллер просмотра для каждого вопроса, просто измените представление контроллера представления текущего вопроса, чтобы показать следующий вопрос. – dan

+0

Что делает протокол 'NSCopying', связанный с слишком большим количеством контроллеров? – rmaddy

ответ

0

В iOS каждый «экран» обычно представлен одним ViewController, который может настраивать его представление и обрабатывать взаимодействие с пользователем.

NSCopying используется для создания копий объектов, но это, вероятно, не то, что вам нужно здесь, как это должно быть тем же контроллер обработок всех вопросов

В вашем случае вы должны иметь скажем, QuestionsViewController с, вероятно, «следующим кнопка».

class QuestionsViewController: UIViewController {} 

Затем связать touchUpInside действие вашей кнопки к способу IBAction (если вы используете Interface Builder для построения просмотра) в QuestionsViewController и обновить представление, чтобы изменить метку вопроса и сбросить поле ответа (s)

@IBAction func nextQuestion(sender: UIButton) { 
    // Update the view... 
} 

в качестве альтернативы можно использовать UIpageViewController/UITableView/UIcollectionView, где каждый вопрос будет другой взгляд/клетка

вы можете посмотреть на тезисы учебники:

Handling user action tutorial

Quizz video tutorial

PageViewController tutorial

+0

Большое спасибо за ответ, вот что я искал – SheyVC

+0

@SheyVC ЕСЛИ это решает вашу проблему, тогда вы должны принять ответ. – rmaddy

0

Вместо создания другого диспетчера представлений для каждого вопроса вы можете использовать единый контроллер просмотра и в следующий раз изменить вопрос. Вы можете использовать анимацию UIView для переходя от одного вопроса к другому.

Смежные вопросы