2015-10-06 21 views
1

正在使用ResearchKit開展Survey應用程序的工作,我需要根據以前的回覆更改下一個問題的值。例如: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

任何想法,我怎麼能做到這一點選擇的值?

回答

1

我發現了一個解決方案,而這是不可能的,你提出的視圖控制器後,創建了新的步伐,這是可能使用新的陣列

for(ORKQuestionStep* step in ((ORKOrderedTask*)self.task).steps) { 
      if([step.answerFormat isKindOfClass:[ORKValuePickerAnswerFormat class]]) { 
       step.answerFormat = [[ORKValuePickerAnswerFormat alloc] initWithTextChoices:arrayOfChoices]; 
      } 
     } 
1

看一看更新一步的answerFormatORKNavigableOrderedTask。 (有關使用示例,請參見ORKTest。)

基本上,您需要爲第一個問題上的所有不同選項定義單獨的步驟,然後根據其答案有條件地導航到適當的步驟。

+0

這是一個不錯的選擇,但我無法使用它,因爲用戶可能擁有無限數量的汽車,而且我無法爲每個選項生成一個步驟。 – FelipeOliveira

+0

@FelipeOliveira:你有沒有找到解決方案? ResearchKit看起來更像靜態解決方案,然後像您提到的那樣是動態解決方案! –

+0

看到我的回答@BishalGhimire – FelipeOliveira

0

您還可以使用:

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

使用這些你可以創建即時步驟本身。 但是,你也失去了一些其他功能,必須自己管理所有的導航。