【问题标题】:Navigation Link only works once in SwiftUI导航链接在 SwiftUI 中只能使用一次
【发布时间】:2020-04-12 09:16:24
【问题描述】:

在名为BuildingListsAndNavigation 的苹果 SwiftUI 代码教程中,它们向您展示了如何使用 NavigationLinks。但是,一旦您点击链接然后点击导航返回按钮,相同的链接将被禁用,直到您点击另一个链接,然后再次点击返回按钮。

这个问题不仅仅发生在苹果的 SwiftUI 教程中,它也发生在我自己的 SwiftUI 项目中。怎么做才能连续点击同一个链接两次?

这是一些示例代码

struct LandmarkList: View {
    var body: some View {
        NavigationView {
            List(0 ..< 5) { number in
                NavigationLink(destination: Text("next page")) {
                        Text("Row\(number)")
                }
            }
            .navigationBarTitle(Text("Landmarks"))
        }
    }
}

【问题讨论】:

  • 许多帖子是旧的或涉及其他变量。我的帖子是我见过的唯一一个给出了可行解决方案的答案。
  • 查看我的解决方案here

标签: ios swift swiftui-navigationlink swiftui


【解决方案1】:

目前 NavigationLink 存在 2 个主要错误。第一个是你提到的你不能两次访问同一个链接。如果您决定添加第二个链接,以便至少测试您的 UI,您会遇到第二个错误,即当您点击第二个链接时,它会在推送它之后弹回根目录。

这是最新的 Xcode 版本 11.3 (11C29) 及其随附的 iOS 13.3 (17C45) 模拟器。

iPhone XR 上的 iOS 13.3 (17C45) 没有这些错误,这很奇怪,因为它与模拟器的内部版本号相同。

【讨论】:

    【解决方案2】:

    它适用于不在模拟器上的设备。

    【讨论】:

    • 取决于操作系统,这是一个混乱的错误,有些测试版可以正常工作,有些不能,有些最终版本可以正常工作。你的设备在运行什么?
    • 是的,至少 13.5 是这样。
    【解决方案3】:

    似乎 Xcode 11.4 上的错误已修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2020-06-14
      • 1970-01-01
      相关资源
      最近更新 更多