Несколько нажатий на одну строку в табличном представлении - PullRequest
1 голос
/ 03 мая 2011

Я работаю над установкой флажка в каждой строке представления таблицы.Когда я нажимаю на строку, ее значение должно сохраняться в массиве, при нажатии на другую строку, его значение также должно сохраняться в том же массиве, а при нажатии на ту же строку значение должно удаляться из массива.

Пожалуйста, предложите мне, как реализовать это.Я использовал следующий код в методе 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 Ответ

6 голосов
/ 03 мая 2011

список - это имя массива, которое содержит все данные, просматриваемые в табличном представлении, замените его собственным именем массива Предположим, что tableArray - это ваш массив, в который значения вставляются и удаляются. в .h файле

NSMutableArray *tableArray;

в файле .m в представлении didload

tableArray=[[NSMutableArray alloc]init];

tableview didselect метод строки: -

- (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 Я проверил код, надеюсь, он может вам помочь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...