如果堆栈大小 > 1,SwiftUI3 导航 link 在弹出后不起作用

SwiftUI3 navigation link doesn't work after pop if stack size > 1

如果堆栈大小 > 1

SwiftUI 3 导航 link 在弹出后不起作用

重现步骤:

  1. 启动应用程序
  2. 点击列表 #1 中的任意行
  3. 点击列表 #2 中的任意行
  4. 点击Back
  5. 点击列表 #2 中的任意行

结果:没有任何反应,导航 link 不起作用 预期结果:我应该再次看到视图控制器 #3。

尽管在 SwiftUI 2 中工作正常。

有没有人能够让嵌套 NavigationLinks 在 Swift UI 3 中工作?我已向 Apple 提交错误报告。

import SwiftUI

@main
struct NavigationTestApp: App {
    var body: some Scene {
        WindowGroup {
            FirstView()
        }
    }
}

struct FirstView: View {
    var body: some View {
        NavigationView {
            List {
                ForEach(0..<10) { i in
                    NavigationLink(destination: SecondView()) {
                        Text("Row \(i)")
                            .padding()
                    }
                }
            }
            .navigationTitle(Text("1"))
        }
    }
}

struct SecondView: View {
    var body: some View {
        List {
            ForEach(0..<10) { i in
                NavigationLink(destination: ThirdView()) {
                    Text("Child \(i)")
                        .padding()
                }
            }
        }
        .navigationTitle(Text("2"))
    }
}

struct ThirdView: View {
    var body: some View {
        VStack {
            Text("")
        }
        .navigationTitle(Text("3"))
    }
}

正如@loremipsum 所说,这是一个已知问题

https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15-beta-release-notes

SwiftUI 已知问题 从导航堆栈中的第三个屏幕弹出后,您无法推送到第三个屏幕。 (79076444)