Reputation: 35
What is the correct way to delete an entry from a list? Where should the closure be placed?
@ObservedObject var category : Category
var body: some View {
List {
ForEach(category.reminders?.allObjects as! [Reminder]) { reminder in
NavigationLink(destination: ReminderDetail(reminder: reminder)) {
VStack {
Text(reminder.title!)
}
}
}
}
.navigationTitle("Reminders")
VStack {
NavigationLink(destination: AddReminder(category: category)) { Text("Add Reminder") }
}.padding()
}
Upvotes: 0
Views: 61
Reputation: 149
You can try this:
var body: some View {
List {
ForEach(category.reminders?.allObjects as! [Reminder]) { reminder in
NavigationLink(destination: ReminderDetail(reminder: reminder)) {
VStack {
Text("reminder.title!")
}
}
}.onDelete(perform: self.deleteItem)
}
.navigationTitle("Reminders")
private func deleteItem(at indexSet: IndexSet) {
self.category.reminders(atOffsets: indexSet)
}
Upvotes: 1