我是Swift和Coding的新手。我的英语不是很好,所以提前道歉!我想开发一个Quiz App。现在我在检查正确答案时遇到了一些麻烦,因为我的uibuttons可以被选择。原因是我想有多个答案,多个选择和多个正确答案。
我不知道什么样的我的代码Informationen你需要从我这里,但我会张贴我的意思是它可以帮助.
非常感谢您提前为您的帮助!!!
班级
import Foundation
class Quiz {
let question: String
let options : [String]
let correctAnswer: [String]
init(question: String, options: [String], correctAnswer: [String]) {
self.question = question
self.options = options
self.correctAnswer = correctAnswer
}
func validateOption(_ index: Int) -> Bool {
let answer = options[index]
return answer == correctAnswer[index]
}
deinit {
}
}
我的Viewcontroller
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var quenstionLabel: UILabel!
@IBOutlet var answerButton: [UIButton]!
let quizManager = QuizManager()
override func viewDidLoad() {
super.viewDidLoad()
getNewQuiz()
}
@IBAction func checkAnswerButtonTapped(_ sender: UIButton) {
}
@IBAction func checkMarkAnswerClicked(_ sender: UIButton) {
if sender.isSelected {
sender.isSelected = false
} else {
sender.isSelected = true
}
}
还有我的测验管理员
import Foundation
class QuizManager {
private var quiz: Quiz!
private var _totalAnswers = 0
private var _totalCorrectAnswers = 0
var question: String {
return quiz.question
}
var options: [String] {
return quiz.options
}
var totalAnswers: Int {
return _totalAnswers
}
var totalCorrectAnswers: Int {
return _totalCorrectAnswers
}
func refreshQuiz(){
let randomIndex = Int(arc4random_uniform(UInt32(quizes.count)))
let quizData = quizes[randomIndex]
quiz = Quiz(question: quizData.question, options: quizData.options, correctAnswer: quizData.correctAnswer)
}
func validateAnswer(index: Int){
_totalAnswers += 1
if quiz.validateOption(index){
_totalCorrectAnswers += 1
}
}
如果有需要更多的信息,请让我知道!!
如果有人能帮我就太好了。
2条答案
按热度按时间bvpmtnay1#
您可以按照以下步骤解决此问题。
1.在“问题课堂”中为您的答案添加数组。
1.第二个在单元格类中添加委托,它将通知视图控制器
1.在视图控制器中实现委托并将答案附加到模型中。
1.在检查按钮点击简单地比较您的正确答案数组点击答案数组.
//第1步var myAnswers:[String]
kq0g1dla2#
我会把你所有的答案按钮列成一个列表。然后,在
checkAnswerButtonTapped
中,您可以运行该列表,查看其中哪些isSelected
设置为true。完成后,将它们与
QuizManager
中预定义的正确答案进行比较。你可以做的另一件事,使你的生活更容易一点是使用
.toggle()
函数与您的布尔变量。基本上,它只是切换变量的值。因此在checkMarkAnswerClicked
中,您可以只使用sender.isSelected.toggle()