我正在用我从100daysofswiftui中学到的东西做一个小程序,我有一个导航视图,在那里你可以添加和删除用户,一个导航链接来查看更多细节。
在细节视图中,你可以给用户添加地址,并删除它,但删除它不工作。
@Environment(\.managedObjectContext) var moc
@Environment(\.presentationMode) var presentationMode
@State private var showAddAddressView = false
let user : User
...
List {
Section(header: Text("Address")) {
ForEach(self.user.addressArray, id: \.self){ address in
AddressCard(address: address)
}.onDelete(perform: self.deleteItem)
}
}
.listStyle(GroupedListStyle())
.environment(\.horizontalSizeClass, .regular)
...
func deleteItem(at offsets: IndexSet) {
for offset in offsets {
let address = self.user.addressArray[offset]
self.moc.delete(address)
}
try? self.moc.save()
}
这是不更新的列表,我必须走出详细视图和回,然后我可以看到的变化。
多亏了@Volker88和@PaFi的帮助,我只是添加了以下内容 @ObservedObject var user : User
到我的对象上,这样一来,swift就知道有什么变化了。