【问题标题】:SwiftUI NavigationView pops view by itself immediately on iOS 15SwiftUI NavigationView 在 iOS 15 上立即自行弹出视图
【发布时间】:2021-11-19 11:48:15
【问题描述】:

我有一个简单的用例,其中一个屏幕使用 NavigationLink 推送另一个屏幕,该 NavigationLink 是由 ForEach 填充的 List 元素的一部分。被推送的屏幕在被推送后立即弹出。这在 iOS 14.x 上工作得很好,但在 iOS 15 上却不行。有人知道这个问题的任何解决方法吗?或者任何其他解决方案如何解决这个问题?

这是一个示例代码:

List {
   ForEach(dataToPopulateListFrom, id: \.id) { data in
      NavigationLink(destination: SomeView()
                                    .environmentObject(someEnviorementObject)
                                    .navigationBarTitle("", displayMode: .inline)) {
         SomeOtherView()
      }
   }
}

【问题讨论】:

    标签: ios swiftui swiftui-navigationlink ios15


    【解决方案1】:

    我看到了类似的情况,除了尝试从列表访问的详细视图将第二个视图弹出到堆栈时发生这种情况。

    似乎父视图被多次重绘,导致父视图存在多个单独的实例。您可以尝试将“onAppear”方法的输出添加到包含列表的视图中,并查看它是否被多次调用?

    我尝试在 SwiftUI 中维护一个项目的经验绝对是糟糕透顶,在每个小的 iOS 点版本中都会出现一些问题。对于任何考虑使用 SwiftUI 开始项目的人,我绝对不推荐它。

    【讨论】:

    • 是的,上次他们发布 iOS 14 的 Xcode 更新时,他们完全破坏了导航链接,我在浪费了几个小时后修复了 this
    • 我也有同样的问题,这让我很困扰
    • 我有同样的问题.... 只在 iOS 14.5 上,但现在我在 15 上看到它... 太令人沮丧了。任何人都发现了任何东西,如果不是那个空的 navigationlink 解决方案,那对我来说并不总是有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2022-11-21
    • 2021-12-08
    • 2020-09-28
    • 1970-01-01
    • 2021-07-22
    • 2022-01-01
    相关资源
    最近更新 更多