I have a UIViewController that implements TableViews delegate and datasource protocols.
Now I want to add \"swipe to delete\" gesture to cells.
If you are using an NSFetchedResultsControllerDelegate to populate the table view, this worked for me:
tableView:canEditRowAtIndexPath returns true alwaysIn your tableView:commitEditingStyle:forRowAtIndexPath implementation, do not delete the row directly from the table view. Instead, delete it using your managed object context, e.g.:
if editingStyle == UITableViewCellEditingStyle.Delete {
let word = self.fetchedResultsController.objectAtIndexPath(indexPath) as! Word
self.managedObjectContext.deleteObject(word)
self.saveManagedObjectContext()
}
func saveManagedObjectContext() {
do {
try self.managedObjectContext.save()
} catch {
let saveError = error as NSError
print("\(saveError), \(saveError.userInfo)")
}
}