下面是我的第一个 Swift UI 应用程序的简单代码。它在 iPhone 上运行良好,我点击一个网格项目,详细视图显示正确的项目。但在 iPad 上它第一次可以正常工作,但之后,后续点击不会更改详细视图。
struct Bird: Identifiable {
let id = UUID()
var name: String
}
struct ContentView: View {
var body: some View {
NavigationView{
let birds = [Bird(name: "Wren"), Bird(name: "Owl"), Bird(name: "Hawk"),]
LazyVGrid(columns: [GridItem(.adaptive(minimum: 100)) ], spacing: 5) {
ForEach( birds ) { bird in
NavigationLink( destination: DetailView(bird: bird) ) {
Text(bird.name)
}
}
}
}
}
struct DetailView: View {
var bird: Bird
var body: some View {
Text("Hello, \(bird.name)")
}
}
我想知道我是否需要让我的 Bird 结构成为一个可观察的对象或类似的东西?奇怪的是,如果我将 LazyVGrid 行与“List”交换,它会按预期工作。任何建议都会无条件接受。