我正在使用带有ContentView和DetailView的SwiftUI创建一个相当简单的列表应用程序。
但是,在我所看到的所有教程中,传递给两个视图的数据源只是“ 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数组中提取数据,但这仅在预览中。我该如何决定应实际提取哪些数据?
答案 0 :(得分:0)
您还必须从项目的场景委托文件中传递数据。