【问题标题】:Weird behavior of NavigationLink on iPadiPad 上 NavigationLink 的奇怪行为
【发布时间】:2020-12-26 20:58:01
【问题描述】:

在我的应用程序中,我有一个 Scrollview,其中包含嵌入在 NavigationView 中的 NavigationLinks。在 iPad 上,按下 NavigationLinks 会导致一些奇怪的事情发生。第一次按下其中一个项目时,它工作得非常好,并显示详细视图。对其他项目的任何后续按下要么不执行任何操作,要么显示先前按下项目的详细视图。有时它会连续处理几个项目,但随后会再次冻结。

导航堆栈似乎有问题?

此简化示例显示了运行 iOS 13.7 的 11 英寸 iPad pro 上的错误

struct ContentView: View {
    var body: some View {
        NavigationView {
            ScrollView {
                ForEach(0..<20) { index in
                    NavigationLink(destination: Text("\(index)")) {
                        Text("\(index)")
                            .padding()
                            .frame(width: 100, height: 100)
                            .background(Color.green)
                    }
                }
            }
        }
    }
}

【问题讨论】:

  • 我怀疑您在简化示例代码中犯了错误,在 NavigationLink 行,目的地肯定不是 Text 视图?
  • 我只是把Text放在那里作为例子。只要 NavigationLink 接收到一个视图(哪个文本是),它就会起作用。使用自定义视图结构可以看到相同的行为。

标签: ios ipad swiftui


【解决方案1】:

是的,它看起来像一个错误。您可以向 Apple 提交反馈。

同时,这里有可能的解决方法。使用 Xcode 11.7 / iOS 13.7 测试

struct ContentView: View {
    @State private var selection = -1
    @State private var isActive = false

    var body: some View {
        NavigationView {
            ScrollView {
                ForEach(0..<20) { index in
                    Button(action: {
                        self.selection = index
                        self.isActive = true
                    } ) {
                        Text("\(index)")
                            .padding()
                            .frame(width: 100, height: 100)
                            .background(Color.green)
                    }
                }
            }
            .background(NavigationLink(destination: Text("\(selection)"),
                isActive: $isActive) { EmptyView() })
        }
    }
}

【讨论】:

  • 感谢您的回答。我已将其发送给 Apple。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 2011-11-25
  • 2015-11-21
  • 1970-01-01
  • 2012-03-30
相关资源
最近更新 更多