在询问了四个问题之后,我怎样才能让故事板上的另一个视图控制器进入?

时间:2015-05-17 21:50:11

标签: arrays swift arc4random

即时尝试让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()
    }

}

1 个答案:

答案 0 :(得分:2)

我首先将所有数据封装到每个问题的Question对象中。

然后将所有问题都放在一个数组中,每次从数组中获取一个随机项时,将其删除。重复直到数组为空并且游戏结束。