我有一个名为 的核心数据实体Cake,它具有以下属性:
我从实体中读取了一个对象,现在我有这样的东西
let orangeCake = Cake(type:"orange", context:coreDataContext)
Run Code Online (Sandbox Code Playgroud)
现在我想展示一个ProgressView. 我想传递进度视图,一个绑定numberOfIngredientsBeingUsed属性,代表目前为止正在使用的成分数量,以及一个常规属性numberOfIngredientsTotal,代表制作蛋糕所需的成分总数。
这个想法是,当numberOfIngredientsBeingUsed主视图发生变化时,进度视图会更新,因为它是一个绑定属性。
我怎么做?我无法思考,因为这numberOfIngredientsBeingUsed是蛋糕对象的属性orangeCake。
CoreData 托管对象是 的类型ObservableObject,因此您不需要传递一个属性,而是需要注入Cakeas的整个实例ObservedObject并在内部使用其属性ProgressView,每当代码其他部分中的某个位置更新相应的对象时,它将更新(并刷新视图)。
所以它应该看起来像
struct ProgressView: View {
@ObservedObject var model: Cake
var body: some View {
Text("Progress: \(model.numberOfIngredientsBeingUsed) of \(model.numberOfIngredientsTotal)")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
757 次 |
| 最近记录: |