Search code examples
objective-ciosuitableviewdidselectrowatindexpath

How to show deleteConfirmationButton on a clicked UITableViewCell


I'm trying to make an UITableViewCell that shows the deleteConfirmationButton (while in edit mode) just like happens when I click at the editing controls but in my case I want it when the user clicks over the UITableCell.

I've already set the property AllowsSelectionDuringEditing to YES and I can delete the rows, I just want the deleteConfirmationButton to avoid any accident.

Any tips on how to do it?

Thanks!!


Solution

  • To do this you would probably use the commitEditingStyleForRowAtIndexPath function, which is called when an object is selected or deleted during editing.

    - (BOOL)tableView:(UITableView *)tableView
     canEditRowAtIndexPath:(NSIndexPath *)indexPath
     {
    return YES;
     }    
    

    And then for the confirmation do something like this:

    - (void)tableView:(UITableView *)tableView
     commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
     forRowAtIndexPath:(NSIndexPath *)indexPath
    
    {
    //make a UIAlert and display confirmation, if yes then run the following code, if no then break
    
    // remove the object
     [myItems removeObjectAtIndex:indexPath.row];
    
    // refresh the table view to display your new data
     [tableView reloadData];
     }