Я делаю приложение, где я использую экран OTP. Я работал с функцией таймера, а также смог изменить текст и снова показать таймер. моя проблема в том, что я не могу перезапустить таймер снова. это застревает в 00:10
.
Вот мой следующий код, пожалуйста, помогите !!
@IBOutlet weak var butttonName: ButtonDesign!
var countTimer:Timer!
var counter = 10
var restartTimer = false
var isTimerRunning = false
override func viewDidLoad() {
if isTimerRunning == false {
startTimer()}
}
func startTimer() {
self.countTimer = Timer.scheduledTimer(timeInterval: 1 , target: self, selector: #selector(OTPVerificationViewController.changeTitle), userInfo: nil, repeats: true)
isTimerRunning = true
}
@objc func changeTitle()
{
if counter != 0
{
butttonName.setTitle(timeString(time: TimeInterval(counter)), for: .normal)
counter -= 1
butttonName.isEnabled = false
} else {
countTimer.invalidate()
butttonName.setTitle("Resend", for: .normal)
}
}
@IBAction func verifyButton(_ sender: UIButton) {
if butttonName.currentTitle == "Resend" {
print("clicked when name is resend !!!")
if restartTimer == true {
startTimer()
restartTimer = false
}
} else {
print("clicked when it is name is verify")
self.performSegue(withIdentifier: "confirmPassword", sender: self)
}
}
Я хочу перезапустить таймер всякий раз, когда пользователь нажимает кнопку «Переслать», и хочу выполнять переход, когда пользователь нажимает кнопку «Подтвердить». обе кнопки одинаковы я меняю имя во время выполнения