【发布时间】:2021-07-18 02:28:41
【问题描述】:
struct PickerView: View {
var items0 : [PageName]
@State var selectedPage: PageName?
init(items0: [PageName]) {
self.items0 = items0
self._selectedPage = State(initialValue: items0.first)
}
var body: some View {
Picker(selection: $selectedPage, label: Text("Page")) {
ForEach(items0) { item in
Text(item.pageName ?? "").tag(item as PageName?)
}
}
Text("\((selectedPage?.pageName)!)")
}
NavigationView {
Form {
PickerView(items0: Array(items0))
}
.foregroundColor(.blue)
.background(Color.yellow)
}
我可以在 Picker 中成功选取 Core Data 的值,但是我不知道如何在我的主视图中使用这个值...
我已经尝试了很多东西,但 Core Data 让我发疯了。
有人可以帮我在 SwiftUI 中将选取器的选取值与 Core Data 一起使用吗?
【问题讨论】:
-
PageName 是您的核心数据对象吗?如果是这样,ForEach 中的内容应该引用一个单独的视图,你可以 @ObservedObject var pageName: PageName 这样你就可以观察到变化
-
@loremipsum 是的,PageName 是 Entities,pageName 是 String 属性。非常感谢你的回复。但我没明白...如果我把“@ObservedObject var pageName: PageName”放在某个地方,那么我也应该把它放在 init 上,但是对于核心数据,它对我来说似乎很复杂,无论我为 init 放什么东西, init 几乎总是有错误:/