返回同一屏幕后,UITableView的选中标记会消失吗?

时间:2015-01-19 18:46:26

标签: ios objective-c uitableview checkmark

我通过不同标题标题的复选标记在UITableView中实现过滤器。

根据选定的单元格,查询在本地数据库上运行,我得到一个结果。我将过滤器结果保存在一个数组中并传递 这个数组通过push segue到另一个uitableviewview并显示结果。

我正在使用模态segue进入过滤器屏幕。

但问题是,当我回到过滤器屏幕时,我选中的选中过滤器会被选中标记的单元格消失。

以下是我选择行的代码:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    long sec = [indexPath section];
    if(sec==0){
    if(cell.accessoryType == UITableViewCellAccessoryNone) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        [sportsSelectedRows addObject:indexPath];
    }
    else {
        cell.accessoryType = UITableViewCellAccessoryNone;
        [sportsSelectedRows removeObject:indexPath];
    }

    }
    else if(sec==1){
        if(cell.accessoryType == UITableViewCellAccessoryNone) {
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
            [areaSelectedRows addObject:indexPath];
    }
        else {
            cell.accessoryType = UITableViewCellAccessoryNone;
            [areaSelectedRows removeObject:indexPath];}
    }
else if(sec==2){
    cell.tag = indexPath.section;
    for (UITableViewCell *cell in [tableView visibleCells]) {
            if (cell.accessoryType != UITableViewCellAccessoryNone && cell.tag == indexPath.section) {
                cell.accessoryType = UITableViewCellAccessoryNone;
            }
        }
    if(cell.accessoryType == UITableViewCellAccessoryNone) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
            [daySelectedRows removeAllObjects];
            [daySelectedRows addObject:indexPath];
        }
        else {
            cell.accessoryType = UITableViewCellAccessoryNone;
            [daySelectedRows removeObject:indexPath];}
    }
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

你能帮忙解决这个问题。

1 个答案:

答案 0 :(得分:0)

内部didSelectRowAtIndexPath:除了记录现在应该选择或未选择项目/路径这一事实外,不做任何事情。将附件处理移至cellForRowAtIndexPath: