【发布时间】:2021-08-13 14:07:25
【问题描述】:
我有一个简单的用例,其中一个屏幕使用 NavigationLink 推送另一个屏幕。 iOS 14.5 有一个奇怪的行为,被推送的屏幕在被推送后立即弹出。
代码:
NavigationLink(destination: EmptyView()) { EmptyView()}
我设法创建了一个示例应用程序并在其中复制它。我认为原因是@Environment(\.presentationMode) 的存在似乎重新创建了视图并导致推送的视图被弹出。
完全相同的代码在 Xcode 12 / iOS 14.4 中运行良好
【问题讨论】:
-
你是如何发起推送的?
-
在 SwiftUI 中你必须使用 NavigationLink 来导航视图。
-
当然,但是你是如何决定/触发推送的?
-
NavigationLink 方法有 isActive 参数,当它为 true 时将触发 NavigationLink。最初它是错误的。