1

我正在使用 ResearchKit 开发调查应用程序,我需要根据先前的响应更改下一个问题的值。例子:

Question 1: How many cars do you have?
- 1 Car
- 2 Cars
- 3 Cars
- 4 Cars
- xx Cars

Question 2: Which is your favorite car?
 - car number 1
 - car number 2
 - car number 3
 - car number 4
 - car number XX

问题 2 的选项数量将基于问题 1 中选择的值。

知道我该怎么做吗?

4

3 回答 3

1

看看ORKNavigableOrderedTask。(参见ORKTest使用示例。)

基本上,您将为第一个问题的所有不同选项定义单独的步骤,然后根据其答案有条件地导航到适当的步骤。

于 2015-10-06T15:53:03.273 回答
1

我找到了一个解决方案,虽然在您展示 ViewController 后无法创建新步骤,但可以使用新数组更新步骤的answerFormat

for(ORKQuestionStep* step in ((ORKOrderedTask*)self.task).steps) {
            if([step.answerFormat isKindOfClass:[ORKValuePickerAnswerFormat class]]) {
               step.answerFormat = [[ORKValuePickerAnswerFormat alloc] initWithTextChoices:arrayOfChoices];
            }
        }
于 2015-10-06T11:53:22.010 回答
0

您还可以使用:

func step(after step: ...) and
func step(before step: ...)

使用这些,您可以即时创建这些步骤。但是,您也会失去一些其他功能,并且必须自己管理所有导航。

于 2017-11-12T01:54:21.130 回答