2

关于这个主题的堆栈溢出有很多很好的答案,但我找不到任何足够具体到我的原因的东西,所以我会向你们寻求帮助。

我有一个访问 .plist 信息的 TableView。.plist 中的信息被分类为字典数组。所以第 1 部分可能有 3 个信息字典,第 2 部分可能有 4 个...

我需要做的是能够在 tableView 中选择多行(已设置),然后从 tableView 中删除行(也已设置),但没有它我似乎无法删除和更新 .plist崩溃。下面是我的代码:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
 if (self.tableView.isEditing)
    {
        _rowsToDelete = [[NSMutableArray alloc] initWithArray:[self.tableView indexPathsForSelectedRows]];
 }

在 DeleteRows 方法中,我尝试了许多操作,但基本上我需要再次访问 .plist 并从 tableView 中删除选定的索引并重新保存 .plist。

到目前为止,我得到的最好结果是我可以删除一个部分中的多行,但是在多个部分中选择多行会崩溃。一个答案建议使用案例:按案例:每个部分的情况,但是部分的数量会动态变化。

对于缺少有关使用的确切代码等的信息,我深表歉意……但我希望有人可以为这种情况提出最佳解决方案。

提前致谢,T

4

1 回答 1

3
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// This method will be called for each cell you have tapped
// You cant write here any code for deletion here 
}

而是尝试下面提到的方法 - 这适用于单细胞删除

但是,您可以 deleteRowsAtIndexPaths 采用节和行的数组,即 NSIndexPath 实例

- (IBAction)actionDeleteCell:(UIButton *)sender {

// below code for getting selected cell row and its section

UIView *view = sender.superview;
while (view && ![view isKindOfClass:[UITableViewCell self]]) view = view.superview;

UITableViewCell *cell = (UITableViewCell *)view;
indexPathForDeletion = [self.tableViewListViewVC indexPathForCell:cell];
NSLog(@"cell is in section %d, row %d", indexPathForDeletion.section, indexPathForDeletion.row);

//below code for deletion from your datasource and then delete from tableview

 [self.dataArray removeObjectAtIndex:indexPathForDeletion.row];
        [self.tableView deleteRowsAtIndexPaths:@[indexPathForDeletion]];
}
于 2013-09-02T13:04:10.823 回答