ResearchKit - Как пропустить или добавить новые вопросы в опрос во время его проведения?
У меня есть три вопроса, которые нужно задать, если пользователь ответил 2 или более "Да". В настоящее время в опросе 12 вопросов. Если пользователь ответит "да" на два или более вопросов, я хочу добавить еще 3 вопроса. (ИЛИ я всегда добавляю 3 дополнительных вопроса в свою ORKOrderedTask, а затем я пропускаю последние 3 вопроса, если пользователь не ответил "Да" на 2 или более вопросов).
Я поигрался с "taskViewController didChange", который позволяет мне проверить, является ли текущий ответ на текущий вопрос "да" или "нет". У меня есть счетчик, который продолжает увеличиваться, если ответ "да".
Теперь мне просто нужно добавить 3 новых вопроса, если счетчик достигнет 2. (ИЛИ пропустить последние 3 вопроса, если счетчик никогда не достигнет 2.)
РЕШЕНИЕ
Вместо того, чтобы изменять текущий опрос, проще просто создать новый опрос, как только первый опрос будет завершен. Для меня, я просто должен был проверить, сколько раз пользователь ответил "Да". Поэтому я использовал этот код в "didFinish" (функция, которая выполняется после завершения опроса), чтобы проверить мои ответы:
//If reason.rawValue is 2,then survey was successfully completed.
if(reason.rawValue == 2){
if let results = taskViewController.result.results as? [ORKStepResult] {
for stepResult: ORKStepResult in results {
for result in ([ORKResult]?(stepResult.results!))!{
if let questionResult = result as? ORKQuestionResult {
print("\(questionResult.answer!)") // This print each answer
}
}
}
}
}
Затем вы делаете то, что вам нужно сделать с ответами, а затем вы звоните:
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "IdentifierInYourStoryboard")
taskViewController.present(viewController, animated: true, completion: nil)
Или сделайте переход или любой другой метод перехода, который вы хотите использовать. Я использовал раскадровки.