List随SwiftUI旋转时遇到意外行为

时间:2019-09-25 04:20:37

标签: iphone swiftui swiftui-list ios-navigationview

我已经在NavigationView中设置了一个相对基本的List,但是当我执行旋转操作时,事情无法按预期进行。

以下屏幕截图显示了事件的顺序。

  

最初在 iPhone 上显示视图时(运行iOS 13.1 17A844

enter image description here

  

当视图从纵向旋转为横向

enter image description here

我主要的兴趣是后退按钮消失了。

  

最后,当它旋转回纵向

enter image description here

请注意,Bar Title已缩小,现在与后退按钮对齐。

这是我用来生成这些屏幕的代码的简化版本:

import SwiftUI

struct ViewA: View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: ViewB()) {
                    Text("ViewB")
                }
                .frame(maxWidth: .infinity,
                       maxHeight: .infinity,
                       alignment: .center)
                Divider()
                NavigationLink(destination: ViewB()) {
                    Text("ViewB")
                }
                .frame(maxWidth: .infinity,
                       maxHeight: .infinity,
                       alignment: .center)
            }
            .padding(.all, 10)
            .multilineTextAlignment(.center)
            .navigationBarTitle(Text("Main blah"))

        }
    }
}

struct ViewB : View {
    private let items = ["A", "B", "C"]

    var body: some View {
        List () { [items] in
            ForEach(items.indices, id: \.self) { index in
                NavigationLink(destination: DetailView(detail:
                    Detail(title: items[index]))) {
                    Text("Blah blah")
                }
            }
        }
        .navigationBarTitle(Text("Bar Title"))
        .listStyle(GroupedListStyle())
    }
}

理想情况下,我希望UI在旋转后保持相同的外观。

为了进行比较,当我使用 iOS 13.1(17A844)在物理iPad上运行此软件时,它的行为符合预期。

0 个答案:

没有答案