在表视图中的同一行上多次点击

时间:2011-05-03 04:23:22

标签: objective-c ios uitableview

我正在为表视图的每一行添加一个复选框。当我点击一行时,它的值应该保存到一个数组中,在另一行的点击上,它的值同样应该保存到同一个数组,并且在同一行的点击中,该值应该从数组中删除。

请告诉我如何实施这个。我在didSelectRowAtIndexPath方法中使用了以下代码,但我无法做到。

if([arrData count]==0)
{
    strlast = [arrName objectAtIndex:indexPath.row];
    [arrData addObject:strlast];
    NSLog(@"string checked in arrData   %@",strlast);
}
else 
{
    for(int i = 0 ;i < [arrData count]; i++) 
    {
        NSLog(@"[arrData count]:%d",[arrData count]);
        strSelected = [arrName objectAtIndex:indexPath.row];
        NSLog(@"strSelected:%@",strSelected);

        for(int i = 0 ;i < [arrData count]; i++) 
        {
            if([strSelected caseInsensitiveCompare:[arrData objectAtIndex:i]])
            {
                [arrData addObject:strSelected];
                NSLog(@"arrData:%@",arrData);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:6)

list是数组名称,其中包含在tableview中查看的所有数据,用您自己的数组名称替换它 假设tableArray是插入和删除值的数组。 在.h文件中

NSMutableArray *tableArray;

在.m文件中查看didload

tableArray=[[NSMutableArray alloc]init];

tableview选择行方法: -

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {




if ([tableArray count]>0) {

        if ([tableArray containsObject:[list objectAtIndex:indexPath.row]]) {
            [tableArray removeObject:[list objectAtIndex:indexPath.row]];
            NSLog(@"data removed");
            NSLog(@"tableArray%@",tableArray);
        }
        else {
            [tableArray addObject:[list objectAtIndex:indexPath.row]];
            NSLog(@"data added");
            NSLog(@"tableArray%@",tableArray);
        }

    }
    else {
        //[tableArray addObject:[NSString stringWithFormat:@"%d",indexPath.row]];
        [tableArray addObject:[list objectAtIndex:indexPath.row]];
        NSLog(@"data added");
        NSLog(@"tableArray%@",tableArray);
    }


}

以dealloc发布数组 我已经测试了代码,希望它可以帮到你......