Swiftui NavigationView 计时器延迟

Posted

技术标签:

【中文标题】Swiftui NavigationView 计时器延迟【英文标题】:Swiftui NavigationView timer delay 【发布时间】:2021-10-05 20:54:58 【问题描述】:

在我的应用程序中,我导航到一个页面(例如,第 2 页),然后希望在页面上显示动画(仅此而已),然后再使用 NavigationView 执行并移动到新视图。换句话说,我希望 NavigationView 目标视图在延迟计时器(例如 3 秒)后加载,而无需用户单击按钮。在这 3 秒内,动画将运行。动画和 NavigationView 可以自己正常工作,但我当前的解决方案需要用户单击按钮/文本才能移动到目标视图,这有点笨拙。我在任何地方都找不到解决方案。任何帮助将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

或者:

struct MyView: View 
    @State var pushNewView: Bool = false
    
    var body: some View 
        NavigationView 
            NavigationLink(isActive: $pushNewView) 
                Text("Second View")
             label: 
                Text("First View") //Replace with some animation content
            
        
        .onAppear 
            DispatchQueue.main.asyncAfter(deadline: .now() + 3) 
                pushNewView = true
            
        
    

【讨论】:

完美谢谢!!【参考方案2】:

这应该可行:

struct MyView: View 
    @State var pushNewView: Bool = false
    
    var body: some View 
        NavigationView 
            NavigationLink(isActive: $pushNewView) 
                Text("Second View")
             label: 
                Text("First View") //Replace with some animation content
            
        
        .onAppear 
            Timer.scheduledTimer(withTimeInterval: 3, repeats: false)  _ in
                pushNewView = true
            
        
    

【讨论】:

非常感谢。完美运行

以上是关于Swiftui NavigationView 计时器延迟的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:如何更改 NavigationView 的色调(背景颜色)?

NavigationView高度不规则swiftui

SwiftUI NavigationView 不记得状态

SwiftUI 弹出框在 NavigationView 中时消失

SwiftUI:检测 tvOS 上 NavigationView 中的选择更改

在 NavigationView 中清除 SwiftUI 列表未正确返回默认值