开发者

UIAlert for deleting a row in tableView

开发者 https://www.devze.com 2023-03-09 15:37 出处:网络
I have this code: - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

I have this code:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{

[array removeObjectAtIndex:indexPath.row];

if (editingStyle == UITableViewCellEditingStyleDelete)
{
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 0)//OK button pressed
{

}
else if(buttonIndex == 1)//Annul button pressed.
{

}
}

I want to show alert view before I cancel a row of tableView, then put instruction of commitEditingStyle:(UITableViewCellEditingStyle)edit开发者_StackOverflowingStyle in first if of UIAlert method delegate...

is it possible?


Save the cell's indexPath to an ivar and use that information within the method called by the alert view.

@interface MyClass : … {
    NSIndexPath *deleteIndexPath;
}
@end

In your implementation:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        deleteIndexPath = indexPath;
        //code for UIAlrtView
        // …
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if(buttonIndex == 0)//OK button pressed
    {
        [array removeObjectAtIndex:deleteIndexPath.row];
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:deleteIndexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号