ResearchKit - 在调查运行期间如何跳过或添加新问题?

时间:2017-05-15 17:13:34

标签: ios xcode swift3 researchkit

如果用户回答了2个或更多"是"我有三个问题需要询问。该调查目前有12个问题,如果用户对两个或更多问题回答“是”,那么我想添加3个额外问题。 (或者我总是将3个额外的问题添加到我的ORKOrderedTask中,然后我会跳过最后3个问题,用户没有回答"是"到2个或更多问题)。

我一直在玩#34; taskViewController didChange"让我检查当前问题的当前答案是否是"是"或"不"。如果答案是"是"我有一个不断递增的计数器。

现在,如果计数器达到2,我只需要添加3个新问题。(如果计数器永远不会达到2,则跳过最后3个问题。)

解决方案

一旦第一次调查完成,就可以更轻松地创建新的调查,而不是修改当前的调查。对我来说,我只需要检查用户回答了多少次"是"。因此,我在" 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)

或制作segue或您希望使用的任何过渡方法。我使用了故事板。

0 个答案:

没有答案