SwiftUI - 当倒计时结束时,跳转到另一个视图
SwiftUI - When the countdown is over, jump to another view
倒计时结束后,我想跳转到另一个视图。
我试过 navigationLink 但没用。
这是我的代码。
struct TimerView: View {
@State var timeRemaining = 5
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
var body: some View {
Text("\(timeRemaining)")
.font(.largeTitle)
.onReceive(timer) { _ in
if self.timeRemaining > 0 {
self.timeRemaining -= 1
}
}
}
}
尝试一些变体:
struct TimerView: View {
@State var timeRemaining = 5
@State var jump = false
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
var body: some View {
NavigationView {
VStack {
Text("\(timeRemaining)")
.font(.largeTitle)
.onReceive(timer) { _ in
if timeRemaining > 0 {
timeRemaining -= 1
} else {
jump = true
// optional stop the timer
timer.upstream.connect().cancel()
}
}
NavigationLink("", destination: Text("the other view"), isActive: $jump)
}
}
}
}
倒计时结束后,我想跳转到另一个视图。 我试过 navigationLink 但没用。
这是我的代码。
struct TimerView: View {
@State var timeRemaining = 5
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
var body: some View {
Text("\(timeRemaining)")
.font(.largeTitle)
.onReceive(timer) { _ in
if self.timeRemaining > 0 {
self.timeRemaining -= 1
}
}
}
}
尝试一些变体:
struct TimerView: View {
@State var timeRemaining = 5
@State var jump = false
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
var body: some View {
NavigationView {
VStack {
Text("\(timeRemaining)")
.font(.largeTitle)
.onReceive(timer) { _ in
if timeRemaining > 0 {
timeRemaining -= 1
} else {
jump = true
// optional stop the timer
timer.upstream.connect().cancel()
}
}
NavigationLink("", destination: Text("the other view"), isActive: $jump)
}
}
}
}