导航链接在 SwiftUI 中只能使用一次
Posted
技术标签:
【中文标题】导航链接在 SwiftUI 中只能使用一次【英文标题】:Navigation Link only works once in 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 【参考方案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 上的错误已修复
【讨论】:
以上是关于导航链接在 SwiftUI 中只能使用一次的主要内容,如果未能解决你的问题,请参考以下文章