所以我正在创建一个测验应用...
应用布局:
查看Controller1:选择测验主题
体育(UI按钮)
数学(UIButton)
汽车(UIButton)
动物(UIButton)
(根据用户点击它的按钮,它会将它们带到另一个视图控制器,列出用户可以选择的几个类别来进行评估) < / p>
ViewController2:选择测验类别
类别 - 动物
哺乳动物(UIButton)
爬行动物(UIButton)
肉食者(UIButton)
鱼(UIButton)(现在,根据用户对类别的选择,我希望能够通过一个视图控制器发送问题,而不是制作特定于每个类别的同一视图的多个视图控制器。)
希望这是有道理的......
我有多个问题库设置,其中包含特定于类别的问题
这是我使用的模型:
导入基金会
class Questions {
let questionText : String
let answer : String
let option1 : String
let option2 : String
let option3 : String
let option4 : String
init(text: String, correctAnswer: String, textA: String, textB: String, textC: String, textD: String) {
questionText = text
answer = correctAnswer
option1 = textA
option2 = textB
option3 = textC
option4 = textD
}
}
这是包含问题的QuestionBank.swift文件
import Foundation
class QuestionBank1 {
var list = [Questions]()
init() {
list.append(item)
list.append = (Questions(text: "What is the largest animal found on earth?", correctAnswer: "elephant", textA: "tiger", textB: "grey whale", textC: "lion", textD: "elephant" ))
}
}
所以希望你还和我在一起,显然问题库里还有更多的问题,但是如何通过一个处理问题并提供4个多项选择答案的视图控制器传递某些QuestionBank.swift文件,具体取决于用户在上一个视图控制器上选择的类别,这有意义吗?
PS我是编码新手并且仍在努力使语言正确
答案 0 :(得分:0)
您可以在prepareForSegue
方法中传递与该特定类别相关的问题列表。在Questions
模型中,您必须添加类别属性。
请参阅此link了解如何执行此操作。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let selectedIndexPath = self.tableView.indexPathForSelectedRow()!
let selectedCategory = categories[selectedIndexPath.row]
let categoryQuestions = questions.filter({$0.category == selectedCategory})
let questionsViewController = segue.destinationViewController as! QuestionsViewController
questionsViewController.questions = questions
}