SwiftUI绑定对象数组并显示更改
我正在尝试在SwiftUI中构建一个小应用程序。它应该显示一个项目列表,并可能更改这些项目。但是,我无法弄清楚数据流是如何正确工作的,因此更改将反映在我的列表中 假设我有这样一类项目:SwiftUI绑定对象数组并显示更改,swift,data-binding,swiftui,Swift,Data Binding,Swiftui,我正在尝试在SwiftUI中构建一个小应用程序。它应该显示一个项目列表,并可能更改这些项目。但是,我无法弄清楚数据流是如何正确工作的,因此更改将反映在我的列表中 假设我有这样一类项目: class Item: Identifiable { let id = UUID() var name: String var dateCreated: Date } class ItemStore { var items = [Item]() } 这个类有一个初始值设定项,它
class Item: Identifiable {
let id = UUID()
var name: String
var dateCreated: Date
}
class ItemStore {
var items = [Item]()
}
这个类有一个初始值设定项,它给每个成员分配一个有用的随机值
现在让我们假设我想在另一个类中存储一个项目列表,如下所示:
class Item: Identifiable {
let id = UUID()
var name: String
var dateCreated: Date
}
class ItemStore {
var items = [Item]()
}
此项目存储是my SceneDelegate的一部分,并交给ContextView
现在我想做的是将一个元素交给另一个视图(从NavigationView的堆栈),在那里它将被更改,但我不知道如何保存所做的更改,以便它们将反映在ContextView中显示的列表中。
我的想法是使项目存储成为环境对象。但是,在item类中我必须做什么,如何将该项传递给另一个视图,这样才能工作呢?
我已经尝试了一些来自苹果WWDC的视频,但是那里的包装已经被弃用了,所以没有用
感谢您的帮助。非常感谢 可能的方法是使用
可观察对象
(来自联合收割机)进行存储
class ItemStore: ObservableObject {
@Published var items = [Item]()
// ... other code
}
class Item: ObservableObject, Identifiable {
let id = UUID()
@Published var name: String
@Published var dateCreated: Date
// ... other code
}
在从属视图中
struct ItemStoreView: View {
@ObservedObject var store: ItemStore
// ... other code
}
struct ItemView: View {
@ObservedObject var item: Item
// ... other code
}
可能的方法是使用
可观察对象
(来自联合收割机)进行存储
class ItemStore: ObservableObject {
@Published var items = [Item]()
// ... other code
}
class Item: ObservableObject, Identifiable {
let id = UUID()
@Published var name: String
@Published var dateCreated: Date
// ... other code
}
在从属视图中
struct ItemStoreView: View {
@ObservedObject var store: ItemStore
// ... other code
}
struct ItemView: View {
@ObservedObject var item: Item
// ... other code
}
看看这里,这可能会有帮助:看看这里,这可能会有帮助:如果我这样做,将项目从ItemStoreView传递到ItemView的正确方法是什么,这样我就可以在项目的名称成员上使用TextField(需要绑定到字符串)?如果我这样做,将项从ItemStoreView传递到ItemView的正确方法是什么,这样我就可以在项的名称成员上使用TextField(需要绑定到字符串)?