即时尝试让NExt按钮在四个问题有答案后消失,并显示一个不同的按钮,该按钮转到另一个视图控制器,我可以添加按钮,如主菜单或分数或类似的东西。感谢
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var QuestionImage: UIImageView!
@IBOutlet var button1: UIButton!
@IBOutlet var button2: UIButton!
@IBOutlet var button3: UIButton!
@IBOutlet var button4: UIButton!
@IBOutlet var labelEnd: UILabel!
@IBOutlet var NExt: UIButton!
var CorrectAnswer = String()
override func viewDidLoad() {
super.viewDidLoad()
hide()
randomQuestion()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func randomQuestion(){
var randomNumber:Int = (Int)(arc4random() % 3 + 1)
while find(askedquestions,randomNumber) != nil && askedquestions.count < 4 {
randomNumber = (Int)(arc4random() % 3 + 1)
}
if askedquestions.count > 4 {
return
}
askedquestions.append(randomNumber)
switch(randomNumber){
case 1:
self.QuestionImage.image = UIImage(named: "apple")
button1.setTitle("potato", forState: UIControlState.Normal)
button2.setTitle("carrot", forState: UIControlState.Normal)
button3.setTitle("apple", forState: UIControlState.Normal)
button4.setTitle("table", forState: UIControlState.Normal)
CorrectAnswer = "3"
break
case 2:
self.QuestionImage.image = UIImage(named: "table")
button1.setTitle("table", forState: UIControlState.Normal)
button2.setTitle("apple", forState: UIControlState.Normal)
button3.setTitle("mac", forState: UIControlState.Normal)
button4.setTitle("windows", forState: UIControlState.Normal)
CorrectAnswer = "1"
break
case 3:
self.QuestionImage.image = UIImage(named: "windows")
button1.setTitle("apple", forState: UIControlState.Normal)
button2.setTitle("car", forState: UIControlState.Normal)
button3.setTitle("potato", forState: UIControlState.Normal)
button4.setTitle("windows", forState: UIControlState.Normal)
CorrectAnswer = "4"
break
case 4:
self.QuestionImage.image = UIImage(named: "mac")
button1.setTitle("windows", forState: UIControlState.Normal)
button2.setTitle("car", forState: UIControlState.Normal)
button3.setTitle("mac", forState: UIControlState.Normal)
button4.setTitle("sky", forState: UIControlState.Normal)
CorrectAnswer = "3"
break
default:
break
}
}
func hide(){
labelEnd.hidden = true
NExt.hidden = true
}
func unHide(){
labelEnd.hidden = false
NExt.hidden = false
}
@IBAction func button1Action(sender: AnyObject) {
unHide()
if (CorrectAnswer == "1"){
labelEnd.text = "Correct"
} else {
labelEnd.text = "wrong"
}
}
@IBAction func button2Action(sender: AnyObject) {
unHide()
if (CorrectAnswer == "2"){
labelEnd.text = "Correct"
} else {
labelEnd.text = "wrong"
}
}
@IBAction func button3Action(sender: AnyObject) {
unHide()
if (CorrectAnswer == "3"){
labelEnd.text = "Correct"
} else {
labelEnd.text = "wrong"
}
}
@IBAction func button4Action(sender: AnyObject) {
unHide()
if (CorrectAnswer == "4"){
labelEnd.text = "Correct"
} else {
labelEnd.text = "wrong"
}
}
@IBAction func next(sender: AnyObject) {
randomQuestion()
hide()
}
}
答案 0 :(得分:2)
我首先将所有数据封装到每个问题的Question对象中。
然后将所有问题都放在一个数组中,每次从数组中获取一个随机项时,将其删除。重复直到数组为空并且游戏结束。