我有这个代码:
- (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
之前显示警报 View ,然后在第一个if
中放入commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
指令> UIAlert
方法委托(delegate)...
这可能吗?
最佳答案
将单元格的indexPath保存到ivar并在警报 View 调用的方法中使用该信息。
@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];
}
}
关于ios - 用于删除 tableView 中的行的 UIAlert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203433/