2012-05-04 5 views
0

У меня есть 4 раздела в моем представлении таблицы, и когда строка нажата, я хочу добавить галочку в эту строку. С приведенным ниже кодом, если я выбираю строку, некоторые другие строки также проверяются, что нежелательно. Я предполагаю, что это имеет какое-то отношение к нескольким разделам, но я не знаю, как это проверить или исправить. Мой _allTagsList - это NSMutableArray с 4 словарями.didSelectRowAtIndexPath с несколькими разделами

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSDictionary *dictionary = [_allTagsList objectAtIndex:indexPath.section]; 
    NSArray *array = [dictionary objectForKey:@"Tags"]; 
    NSString *selectedTag = [array objectAtIndex:indexPath.row]; 


    if([tableView cellForRowAtIndexPath:indexPath].accessoryType == UITableViewCellAccessoryCheckmark) 
    { 
     [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone; 
    } 
    else 
    { 
     [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark; 
    } 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

ответ

2

Вам нужно для хранения indexPaths выбраны, а затем в функции cellForRowAtIndexPath вам нужно т также установить accessoryType на основе этих сохраненных indexPaths. Если вы измените тип аксессуара на ячейку и затем прокрутите, по мере того, как эта ячейка будет переработана, атрибут принадлежности будет проверяться.

+0

Я не уверен, как это будет сделано? –

+0

@Niels Sønderbæk Создайте свойство для изменяемого массива и создайте его в представлении. Всякий раз, когда кто-то выбирает ячейку, проверяет, уже ли путь указателя уже находится в массиве, и если он удаляет его и устанавливает ячейку непроверенной. В противном случае добавьте его и установите ячейку. Затем в ячейке для строки в указательном пути проверьте, находится ли указательный путь в массиве и задан ли ячейка, если в противном случае она не была проверена. –

+0

спасибо, сейчас он работает :) –

Смежные вопросы