Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITableView, intercepting Edit mode

I'm curious if it's possible to intercept the default methods of 'Edit' mode on a UITableView. Typically you get a free 'delete' button if you side swipe a UITableViewCell that has delegate methods associated with it. I'd like to change the delete to some other, arbitrary selector. Instead of deleting the cell, I'd just like to run a hello world alert dialogue. Is something to this extent possible?

like image 461
Coocoo4Cocoa Avatar asked Dec 11 '08 16:12

Coocoo4Cocoa


3 Answers

Editing is implemented as a method on your UITableView’s delegate object. In your table controller, have whatever control activates editing call this:

[tableView setEditing: YES animated: YES];

Then, make sure that your delegate object implements this:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
            UIAlertView *alert = [[UIAlertView alloc] 
                initWithTitle: @"Delete" 
                message: @"Do you really want to delete “George W. Bush”?" 
                delegate: self
                cancelButtonTitle: @"Cancel"
                otherButtonTitles: @"Of course!", nil];
    }
}

…or a more standard action might be:

[itemList removeObjectAtIndex:indexPath.row];
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
like image 194
Adam Prall Avatar answered Nov 05 '22 07:11

Adam Prall


@JFMartin and Marco - to replace the standard 'Delete' button use the following UITableview delegate method

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
like image 43
James Avatar answered Nov 05 '22 06:11

James


There is a property on UITableViewCell called editAction which is documented as letting you change the action used for insertion or deletion on individual cells (it uses the cell's target property too). I haven't tested it, but this sounds like it might do what you want.

like image 3
Lily Ballard Avatar answered Nov 05 '22 05:11

Lily Ballard