Faisal Syed Faisal Syed - 1 year ago 73
Swift Question

How to delete table view row from custom cell?

I have a custom table view cell with two buttons. If either one is pressed, I want the table view to delete the row. I already know the code for that:

myArray.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)


I just would like to call this from my custom cell. I have it set up like so:

@IBAction func handleDecline(sender: AnyObject)
{
// Remove table view row
}

@IBAction func handleApprove(sender: AnyObject)
{
// Remove table view row
}


How would I go about doing that?

Answer Source

You should not handle deletion of a cell from the cell itself. It violates MVC pattern. Events should be delegated to the view controller and handled there with deleteRows method like this:

tableView.deleteRows(at: [indexPath], with: .fade)

Also tableView's dataSource must be updated accordingly, otherwise app will crash.

Here you can find an example of how you can delegate an event from cell to view controller

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download