SwiftUI 模态演示在 iPad 模拟中搞砸了吗?

SwiftUI modal presentation messed up on iPad simulation?

所以我有一个模式被拉起,它有导航 links 在其中有其他视图作为目的地(现在,这些视图是空的)。出于某种原因,在Xcode中的iPhone模拟器上,模态呈现没问题;父视图被拉起,您可以单击导航 links 使模式打开一个新的 "subpage"。但是出于某种原因,在 iPad 模拟器上,父 modal/view 占据了模态的一半,导航 links (当我单击它们时)出现在模态的另一半.我怎样才能模仿 iPhone 模拟器上的行为?

如您所见,iPad 上模态显示的左侧是 "settings" 模态,当我单击导航 link 时,"licenses" 模态出现在右侧。如果我不点击导航link,右侧是空的。

将此添加到您的 NavigationView

NavigationView {
    ....
}.navigationViewStyle(StackNavigationViewStyle())

默认的 SwiftUI 导航方法是使用 UISplitView 作为跨所有设备的基础导航模型。如果你熟悉 UISplitView 的特性,你就能理解 SwiftUI 导航的所有怪癖...

在简单模型中,这往往会导致 master/detail 交互模型,并解释了设备旋转时看似随机的 resets/recreation 视图。

指定 StackNavigationViewStyle 会有所帮助,因为它将模型从 master/detail 更改为单个堆叠 UINavigationView 模型。这更简单也更可靠,但没有有效利用 iPad Ui...