SwiftUI - 倒计时结束后,跳转到另一个视图

Posted

技术标签:

【中文标题】SwiftUI - 倒计时结束后,跳转到另一个视图【英文标题】:SwiftUI - When the countdown is over, jump to another view 【发布时间】:2021-08-28 00:02:33 【问题描述】:

倒计时结束后,我想跳转到另一个视图。 我试过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

                
            
    

【问题讨论】:

【参考方案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)
            
        
    

【讨论】:

以上是关于SwiftUI - 倒计时结束后,跳转到另一个视图的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI实现不同TabView标签页中任意导航层级视图之间自动相互跳转那些事儿

SwiftUI实现不同TabView标签页中任意导航层级视图之间自动相互跳转那些事儿

如何在 SwiftUI 中从一个详情页跳转到另一个详情页并返回列表页?

如何在 onReceive 计时器关闭 SwiftUI iOS 中导航另一个视图

SwiftUI:列表项跳转到选取器表单中的标题

unity里视频播放完如何自动跳转到另一个场景?