如何在 XCode 8 swift 中禁用某个功能

How can i disable a function, in XCode 8 swift

所以我制作了一个测验应用程序,当用户完成 10 个问题时,它会隐藏按钮并显示一个按钮以转到下一个问题。我最近给它添加了一个倒数计时器并且它可以工作但是当他们完成测试时计时器会继续并且我想找到一种方法在他们完成测验时禁用它。因此,当他们已经完成时,他们不会被带到重试页面。希望它有意义!

更新计时器代码

internal func updateTimer()
{

    counter = counter - 1
    if(counter > 0)
    {
        ibCounter.text = String(counter)
    }else{   
        self.performSegue(withIdentifier: "Segue13", sender: nil)
    }
}

定时器代码。

timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(cricketTest1View.updateTimer), userInfo: nil, repeats: true)

这是我在用户完成测验时输入代码的部分

func PickQuestion(){

        if Questions.count > 0{
            QNumber = 0
            QuestionLabel.text = Questions[QNumber].Question

            AnswerNumber = Questions[QNumber].Answer

            for i in 0..<Buttons.count{

                Buttons[i].setTitle(Questions[QNumber].Answers[i], for: UIControlState())

            }

            Questions.remove(at: QNumber)
        }
        else{

            QuestionLabel.text = "YOU HAVE COMPLETED THE QUIZ"
            Button1.isHidden = true
            Button2.isHidden = true
            Button3.isHidden = true
            Button4.isHidden = true
            NextQuiz.isHidden = false
            Start.isHidden = true
            ibCounter.isHidden = true
        }
}

完成测验后使用 timer.invalidate()

它应该根据您的代码放在您的其他部分。

在这些表示测验已完成的行下方,您想停止计时器:

    QuestionLabel.text = "YOU HAVE COMPLETED THE QUIZ"
    Button1.isHidden = true
    Button2.isHidden = true
    Button3.isHidden = true
    Button4.isHidden = true
    NextQuiz.isHidden = false
    Start.isHidden = true
    ibCounter.isHidden = true

如果你查看 Timer 的 docs, you will find a method called invalidate:

Stops the timer from ever firing again and requests its removal from its run loop.

这正是您需要调用的方法:

timer.invalidate()