Core data 迅捷+;核心数据-更新对象(详细信息->;详细信息编辑)
目标:使用SwiftUI更新核心数据对象:DetailView->EditDetail->DetailView(已更新) 问题:下面的代码可以工作,但会创建一个新对象,而不是更新现有对象Core data 迅捷+;核心数据-更新对象(详细信息->;详细信息编辑),core-data,swiftui,xcode11,Core Data,Swiftui,Xcode11,目标:使用SwiftUI更新核心数据对象:DetailView->EditDetail->DetailView(已更新) 问题:下面的代码可以工作,但会创建一个新对象,而不是更新现有对象 import SwiftUI struct DetailView: View { var order = Order() @State var showOrderEdit = false var body: some View {
import SwiftUI
struct DetailView: View {
var order = Order()
@State var showOrderEdit = false
var body: some View {
Form{
Text(order.tableNumber)
Text(order.pizzaType)
}
.navigationTitle(order.pizzaType)
.toolbar {
ToolbarItem(placement: .primaryAction) {
//edit button
Button(action: {
showOrderEdit = true
}, label: {
Text("Edit")
})
.sheet(isPresented: $showOrderEdit) {
OrderEdit(order: order)
}
}
}
}
}
在每个视图中创建新的
Order
对象,以便将其作为新对象存储到数据库中。相反,您需要将父视图(显示DetailView)中的CoreData对象作为观察对象注入
struct DetailView: View {
@ObservedObject var order: Order // << here !!
// .. other code
struct DetailView:View{
@观察对象变量顺序:顺序//天才,伙计!你有赞助人吗?这样我就可以给你一点捐款了?
struct DetailView: View {
@ObservedObject var order: Order // << here !!
// .. other code
struct DetailEdit: View {
@State var tableNumber = ""
@Environment(\.managedObjectContext) private var viewContext
@Environment (\.presentationMode) var presentationMode
@ObservedObject var order: Order // << here !!
// ... other code