我已经设置了一个嵌入在 NavigationView 中的相对基本的列表,但是当我执行旋转时,事情并没有按预期工作。
以下屏幕截图显示了事件的顺序。
当视图最初呈现在iPhone上时(运行 iOS 13.1 17A844)
当视图从纵向旋转到横向时
我在这里的主要兴趣是后退按钮消失了。
最后,当它旋转回纵向时
请注意,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 上运行它时,它的行为符合预期。