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

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

【问题讨论】:

    标签: ios swift xcode swiftui


    【解决方案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
                }
            }
        }
    }
    

    【讨论】:

    • 非常感谢。完美运行
    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多