Я хотел бы выполнить тест по 20 вопросам в Swift, тот же viewcontroller должен повторяться каждый раз, когда следующая кнопка нажата до последнего вопроса, но это создает очередь диспетчеров view, это не должно происходить. Я читал, и протокол NSCopying мог мне помочь, но я не могу полностью понять, каким образом. Кто-то может объяснить мне или привести пример правильного способа использования протокола NSCopying в этом случае.NSCopying Protocol Swift
ответ
В iOS каждый «экран» обычно представлен одним ViewController, который может настраивать его представление и обрабатывать взаимодействие с пользователем.
NSCopying используется для создания копий объектов, но это, вероятно, не то, что вам нужно здесь, как это должно быть тем же контроллер обработок всех вопросов
В вашем случае вы должны иметь скажем, QuestionsViewController с, вероятно, «следующим кнопка».
class QuestionsViewController: UIViewController {}
Затем связать touchUpInside действие вашей кнопки к способу IBAction (если вы используете Interface Builder для построения просмотра) в QuestionsViewController и обновить представление, чтобы изменить метку вопроса и сбросить поле ответа (s)
@IBAction func nextQuestion(sender: UIButton) {
// Update the view...
}
в качестве альтернативы можно использовать UIpageViewController/UITableView/UIcollectionView, где каждый вопрос будет другой взгляд/клетка
вы можете посмотреть на тезисы учебники:
Вместо создания другого диспетчера представлений для каждого вопроса вы можете использовать единый контроллер просмотра и в следующий раз изменить вопрос. Вы можете использовать анимацию UIView для переходя от одного вопроса к другому.
- 1. swift - класс NSCopying
- 2. Сравнение Swift Protocol
- 3. Swift Protocol в Framework
- 4. windowDidResize protocol swift OSX
- 5. Использование Swift Protocol Inheritance
- 6. Swift Protocol как тип
- 7. OptionSetType protocol Swift
- 8. Swift-реализация LiteralConvertible protocol
- 9. Swift 2.0 Force Protocol
- 10. Swift - nil проверка аргумента функции NSCopying
- 11. Параметры функции Swift Generic Protocol
- 12. set NSArray protocol in swift
- 13. Делегация Swift Protocol не работает
- 14. Реализация NSCopying
- 15. NSCopying & Наследование
- 16. 'NSDictionary?' не конвертируется в «NSCopying»
- 17. @protocol extends @protocol
- 18. Swift: Protocol vs. Struct vs. Class
- 19. Сравнение времени выполнения MetaTypes Swift Protocol
- 20. swift optional var in @objc protocol
- 21. Swift 3 Delegate, Protocol - TapGesture не работает
- 22. Как вернуть `[Self]` из Swift Protocol?
- 23. Статическое ключевое слово в Swift 3 protocol
- 24. Невозможно преобразовать тип выражения 'CGRect' в тип 'NSCopying!' in swift
- 25. Как соответствовать NSCopying и реализовать copyWithZone в Swift 2?
- 26. Тип 'String' не соответствует протоколу 'NSCopying' - Array swift json Ошибка
- 27. Когда требуется NSCopying?
- 28. NSCopying массивы пользовательских объектов
- 29. NSCopying Протокол Не Рабочая
- 30. qt error: множественное определение `Protocol :: Protocol() '
Вы не хотите использовать 'NSCopying' для этого. Если вы не хотите нажимать новый контроллер просмотра для каждого вопроса, просто измените представление контроллера представления текущего вопроса, чтобы показать следующий вопрос. – dan
Что делает протокол 'NSCopying', связанный с слишком большим количеством контроллеров? – rmaddy