Filip Lederleitner
Filip Lederleitner

Reputation: 35

Deleting a List entry in Swift UI

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

Answers (1)

sergio_veliz
sergio_veliz

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

Related Questions