UIAlert для удаления строки в tableView - PullRequest
2 голосов
/ 01 июня 2011

У меня есть этот код:

- (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.
{

}
}

Я хочу показать представление оповещения перед тем, как отменить строку tableView, а затем поместить инструкцию commitEditingStyle:(UITableViewCellEditingStyle)editingStyle в первый if метода UIAlertделегат ...
возможно ли это?

1 Ответ

5 голосов
/ 01 июня 2011

Сохраните indexPath ячейки в ivar и используйте эту информацию в методе, вызываемом представлением предупреждений.

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

В вашей реализации:

- (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];
    }
}
...