我想根据用户的选择从表格视图中删除多行。显然我不能使用didSelectRowAtIndexPath
方法,因为它将被选中的每一行都被调用。我想允许用户选择多行进行删除,然后一次删除它们。可能吗?
如果是,那该怎么办呢?此外,我正在使用基于单一视图的项目,并且当用户想要从视图中删除行时,我希望在同一视图上将表视图的标题更改为“删除”。
答案 0 :(得分:1)
你可以这样做:
- (void)tableView:(UITableView *)theTableView
didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
[theTableView deselectRowAtIndexPath:[theTableView indexPathForSelectedRow] animated:NO];
UITableViewCell *cell = [theTableView cellForRowAtIndexPath:newIndexPath];
if (cell.accessoryType == UITableViewCellAccessoryNone) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[selectedCellsMutableArray addObject:newIndexPath];
} else if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
[selectedCellsMutableArray removeObjectIdenticalTo:newIndexPath];
}
}
当用户按删除所选按钮时 - 只需调用类似
的内容// change your model here and then:
[yourView deleteRowsAtIndexPaths:selectedCellsMutableArray
withRowAnimation:UITableViewRowAnimationRight];
答案 1 :(得分:0)
迟到的回复,但处理此问题的另一种方法(如果您的目标是iOS 5)是切换编辑模式并使用内置的多个单元格选择。最简单的方法是将它放在viewDidLoad ...
中// add edit button to navigation bar, which auto toggles editing mode
self.navigationItem.rightBarButtonItem = self.editButtonItem;
// allows user to select multiple cells while in editing mode
self.tableView.allowsMultipleSelectionDuringEditing = YES;