Есть два контроллера. На первом в label отображается таймер, который можно запустить как с первого контроллера, так и со второго по нажатию на кнопку старта. На втором контроллере таймер не отображается. Как реализовать старт из первого контроллера понятно, а вот как из второго запнулся и не могу сообразить…
@IBOutlet weak var label: UILabel!
var liveTimer = Timer()
var secondsLeft: Int = 1200
var liveTimerRun = false
var minutes: Int = 0
var seconds: Int = 0
func updateTimer(_ runningTimer: Timer) {
secondsLeft -= 1
if secondsLeft == 0 {
label. .text = "00:00"
liveTimerRun = false
} else {
minutes = (secondsLeft % 3600) / 60
seconds = (secondsLeft % 3600) % 60
label.text = String(format: "%02d:%02d", minutes, seconds)
}
}
@IBAction func startTimerInFirstController(sender: AnyObject) {
if liveTimerRun == false {
liveTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(FirstController.updateTimer), userInfo: nil, repeats: true)
liveTimerRun = true
}
}
При добавлении старта таймера в экшин стартовой кнопки на втором контроллере, приложение падает, это и логично. Ссылка селектора обозначает первый контроллер. А активируем на втором, поменяв в записи на второй контроллер, вылезит ошибка в updateTimer и тд
@IBAction func startTimerInSecondController(sender: AnyObject) {
if liveTimerRun == false {
liveTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(FirstController.updateTimer), userInfo: nil, repeats: true)
liveTimerRun = true
}
}
Как реализовать запуск таймера в startTimerInSecondController? Спасибо