我正在使用带有 ContentView 和 DetailView 的 SwiftUI 创建一个相当简单的列表应用程序。
但是,在我看过的所有教程中,传递给两个 View 的数据源都只是“testData”,并且数据源仅在#if DEBUG部分中定义。
如何在 ContentView 本身中定义应从哪个数组加载数据?
我创建了多个数据数组,但我不明白在 #if DEBUG 之外的何处实际访问了这些数据。
import SwiftUI
struct ContentView : View {
@ObjectBinding var store = GrapeStore()
var body: some View {
NavigationView {
List {
ForEach(store.grapes) { grape in
GrapeCell(grape: grape)
}
}
.navigationBarTitle("Wine grapes")
.navigationBarItems(trailing: EditButton())
.listStyle(.grouped)
}
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
Group {
ContentView(store: GrapeStore(grapes: AGrapes))
ContentView(store: GrapeStore(grapes: testData))
.environment(\.colorScheme, .dark)
}
}
}
#endif
struct GrapeCell : View {
let grape: Grape
var body: some View {
return NavigationLink(destination: GrapeDetail(grape: grape)) {
Image(systemName: "photo")
VStack(alignment: .leading) {
Text(grape.name)
Text("\(grape.type) grape")
.font(.subheadline)
.foregroundColor(.secondary)
}
}
}
}
我设法从 ACGrapes 和 testData 数组中提取数据,但这仅在预览中。我如何决定实际应该提取哪些数据?
最佳答案
您还必须从项目的场景委托(delegate)文件传递数据。
关于arrays - 如何将真实数据(不是测试数据)附加到 SwiftUI 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57271814/