SwiftUI 意外地自动弹出 NavigationLink

May*_*mar 5 ios swiftui ios14.5

我有一个简单的用例,其中一个屏幕使用 NavigationLink 推送另一个屏幕。iOS 14.5 有一个奇怪的行为,即推送的屏幕在被推送后立即弹出。

代码:

NavigationLink(destination: EmptyView()) { EmptyView()} 
Run Code Online (Sandbox Code Playgroud)

我设法创建一个示例应用程序并在其中重现它。我相信原因是@Environment(\.presentationMode)它的存在似乎重新创建了视图,并导致推送的视图被弹出。

完全相同的代码在 Xcode 12 / iOS 14.4 中运行良好

小智 4

从上周开始我就陷入了这个困境。为了解决这个问题,我只需将其添加到包含现有的视图中NavigationLink

NavigationLink(destination: EmptyView()) {
    EmptyView()
}
Run Code Online (Sandbox Code Playgroud)