arrays - 如何将真实数据(不是测试数据)附加到 SwiftUI 中的列表?

标签 arrays swift swiftui

我正在使用带有 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/

相关文章:

C# 缓冲区解释

php - 使用数组访问对象

c++ - 没有列号的二维数组给出地址?

swift - 将 swiftLint 添加到项目后运行 pod install 时出错

c++ - 返回数组的一维?

ios - 将 UIGestureRecognizer 初始化为 Swift 中属性定义的一部分?

ios - 点击文本字段时未调用 textFieldDidBeginEditing 函数

swiftui - 在 SwiftUI TabView 中动态隐藏选项卡 - 选项卡混合在更多...溢出项目中

ios - 如何实现SwiftUI刷新以获取新的网络数据?

ios - 每次进行更改时预览都会出错 (SwiftUI)