如何跟踪标签上的答案?

时间:2017-07-29 05:44:15

标签: swift count label

在我的测验应用中,如果我想跟踪用户所在的问题编号并显示它,我将如何使用以下代码执行此操作?因此,如果用户在第三个问题出现时回答了两个问题,我希望它显示"问题编号3和#34;。基本上我希望用户知道他们所处的数字问题,它应该等同于他们已经回答的问题数量加上一个。

这是我的代码:

 import UIKit

class ViewController: UIViewController {


var questionList = [String]()


func updateCounter() {




    counter -= 1
    questionTimer.text = String(counter)

    if counter == 0 {


        timer.invalidate()
        wrongSeg()
        }


}



func randomQuestion() {



    //random question
    if questionList.isEmpty {
        questionList = Array(QADictionary.keys)



    }






    let rand = Int(arc4random_uniform(UInt32(questionList.count)))
    questionLabel.text = questionList[rand]


    //matching answer values to go with question keys
    var choices = QADictionary[questionList[rand]]!

      questionList.remove(at: rand)



    //create button
        var button:UIButton = UIButton()

    //variables
    var x = 1
    rightAnswerBox = arc4random_uniform(4)+1


        for index in 1...4
        {



            button = view.viewWithTag(index) as! UIButton

            if (index == Int(rightAnswerBox))
            {
                button.setTitle(choices[0], for: .normal)

            }

            else {
                button.setTitle(choices[x], for: .normal)
                x += 1

            }




        }

    randomImage()

    }


let QADictionary = ["Who is Thor's brother?" : ["Atum", "Loki", "Red Norvell", "Kevin Masterson"], "What is the name of Thor's hammer?" : ["Mjolinr", "Uru", "Stormbreaker", "Thundara"], "Who is the father of Thor?" : ["Odin", "Sif", "Heimdall", "Balder"]]



//wrong view segue
func wrongSeg() {

   performSegue(withIdentifier: "incorrectSeg", sender: self)

}




//proceed screen
func rightSeg() {

    performSegue(withIdentifier: "correctSeg", sender: self)
}



//variables
var rightAnswerBox:UInt32 = 0
var index = 0



//Question Label
@IBOutlet weak var questionLabel: UILabel!

//Answer Button
@IBAction func buttonAction(_ sender: AnyObject) {

if (sender.tag == Int(rightAnswerBox))


{
    rightSeg()

    timer.invalidate()
    print ("Correct!")

}

    if counter != 0 {


        counter = 15

    }
else if (sender.tag != Int(rightAnswerBox)) {

    wrongSeg()
print ("Wrong!")
    timer.invalidate()
    questionList = []

    }



     }

  override func viewDidAppear(_ animated: Bool)
 {

randomQuestion()

questionTimer.text = String(counter)
timer = Timer.scheduledTimer(timeInterval: 1, target:self, selector: #selector(ViewController.updateCounter), userInfo: nil, repeats: true)

 }



//variables
var counter = 15

var timer = Timer()

@IBOutlet weak var questionTimer: UILabel!







override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.



}

1 个答案:

答案 0 :(得分:1)

采取全局问题总数的计数器,并在随机问题中更新,如

var answerdQuestion = 1;



   func randomQuestion() {
     //random question
        if questionList.isEmpty {
            questionList = Array(QADictionary.keys)
        }
       lblQuestionNumber.text = Strint(answerdQuestion)
       answerdQuestion += 1
:
:
}