CoreData使用后续
在之前的基础上增加对已经录入的内容的修改。新建SwiftUI文件,命名为EditListToDo.swift。
内容如下(简单注释):
import SwiftUI
import CoreData
struct EditListToDo: View {
@Environment(\.managedObjectContext) var managedObjectContext
@Environment(\.presentationMode) var presentationMode
//需要传入的变量
var todoItem: ToDoItem
@State var updatedNeedTodo: String = ""
var body: some View {
List{
VStack {
//此处修改内容
TextField("Need to do...", text: $updatedNeedTodo)
.textFieldStyle(RoundedBorderTextFieldStyle())
.onAppear(perform: {
//每次显示该视图时赋值变量
self.updatedNeedTodo = self.todoItem.needToDo ?? ""
})
Button(action: {
self.todoItem.needToDo = self.updatedNeedTodo
do{
try self.managedObjectContext.save()
}catch
{
print(error)
}
//button按下后退出该视图
self.presentationMode.wrappedValue.dismiss