Я прошу прощения, если проблема была решена, но я искал и не мог найти. У меня есть таймер, который отсчитывает от 3 минут, который работает. Проблема в том, что если таймер завершает работу (приложение завершается) и я go возвращаюсь обратно в приложение, время больше не отсчитывается. Приложение должно быть перезапущено для работы таймера.
@State private var timeRemaining = 3
let timer = Timer.publish(every: 60, on: .main, in: .common).autoconnect()
Text("\(timeRemaining)")
.frame(width:40,height: 40)
.background(Color.red)
.foregroundColor(Color.white)
.clipShape(Circle())
.overlay(Circle().stroke(Color.white,lineWidth: 2))
.onReceive(timer) {_ in
if self.timeRemaining > 0 && self.gamePlayStatus == true {
self.timeRemaining -= 1
if self.timeRemaining == 2 && self.gamePlayStatus == true {
self.readTimeRemaining = "\(self.timeRemaining) minutes remaining"
ReadSynthWord(word: self.readTimeRemaining)
} else if self.timeRemaining == 1 {
self.readTimeRemaining = "\(self.timeRemaining) minute remaining"
ReadSynthWord(word: self.readTimeRemaining)
} else if self.timeRemaining == 0 && self.gamePlayStatus == true {
ReadSynthWord(word: "Time is up")
}