【问题标题】:SwiftUI Unexpectedly NavigationLink pops automaticallySwiftUI 意外 NavigationLink 自动弹出
【发布时间】: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。最初它是错误的。

标签: ios swiftui ios14.5


【解决方案1】:

自上周以来,我就陷入了困境。为了解决这个问题,我只是将它添加到包含我现有的NavigationLinks 的视图中:

NavigationLink(destination: EmptyView()) {
    EmptyView()
}

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    相关资源
    最近更新 更多