0

下面是我的第一个 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”交换,它会按预期工作。任何建议都会无条件接受。

4

0 回答 0