在 SwiftUI 中导航到列表视图会立即将列表向上移到屏幕外

Navigating to List View in SwiftUI immediately shifts the list upward offscreen

一个简单的 NavigationLinkList 视图给了我以下奇怪的行为。导航成功后,列表突然转移到标题和后退按钮不再出现在屏幕上的地方:

这是代码 (Xcode 11.5)。知道发生了什么事吗?

struct ContentView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: ListView()) {
                Text("Go to List View ›")
            }.navigationBarTitle("").navigationBarHidden(true)
        }
    }
}

struct ListView: View {
    var body: some View {
        List {
            ForEach(0 ..< 3) { person in
                HStack {
                    Image(systemName: "person.crop.circle.fill")
                        .resizable().frame(width: 80, height: 80)
                    Text("User \(person+1)")
                }
            }
        }.listStyle(GroupedListStyle())
            .navigationBarTitle("List")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

出现此问题是因为您尝试以 SwiftUI 当前不支持的方式 hide/show NavigationBar(可能会在下一版本中修复)。

当您尝试使 NavigationBar 在根视图中隐藏并在详细视图中显示时,SwiftUI 中会出现此错误:

编辑

这个错误似乎已在 Xcode 12 beta 中修复。