如何使UITableView单元能够被用户删除?
答案 0 :(得分:2)
一个简单的例子是:
// create a mutable array to manage your table data
NSMutableArray *tableList;
@property (nonatomic, retain) NSMutableArray *tableList;
在您的viewDidLoad
方法中,您可以使用数据对其进行初始化(您应该先检查tableList
是否为零)
NSString *path = [[NSBundle mainBundle] pathForResource:@"TableData" ofType:@"plist"];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:path];
self.tableList = array;
[array release];
然后在实现文件中,实现此委托方法
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
[self.tableList removeObjectAtIndex:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
然后您可以通过
切换编辑模式[self.tableView setEditing:!self.tableView.editing animated:YES];
答案 1 :(得分:1)
查看表视图数据源委托方法-tableView:commitEditingStyle:forRowAtIndexPath:
。
您在表视图委托(通常是表视图控制器)中覆盖此方法,并将删除逻辑放在此处。
例如,您可以调用UIAlertView
来要求用户确认删除,或者只是直接操作数据模型,从表视图的数据源中删除对象。