как снять все ячейки на tableview в ios - PullRequest
1 голос
/ 13 марта 2012

У меня есть табличное представление, где, когда пользователь выбирает ячейку, он устанавливает accessorytype в UITableViewCellAccessoryCheckmark.

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

Есть ли способ снять все? Я полагаю, что в основном все они установлены на UITableViewCellAccessoryNone.

Я пытался использовать reloadData, когда появляется вид, но, похоже, это не вызывает cellForRowAtIndexPath (здесь моя логика - установить accessorytype ячеек)

Ответы [ 3 ]

3 голосов
/ 09 августа 2012

Я думаю, что это может делать то, что вы хотите.Я предполагаю, что вы хотите снять все ячейки как часть ответа на tableView: didSelectRowAtIndexPath: но вы можете вставить этот код в любом месте:

- (void)tableView:(UITableView *)tableView 
    didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Uncheck any visible, checked cells.
    NSArray *visibleCells = [tableView visibleCells];
    for (UITableViewCell *cell in visibleCells) {
        [cell setAccessoryType:UITableViewCellAccessoryNone];
    }

    // Now do whatever else you want in response to a row being selected.
}
2 голосов
/ 14 марта 2012

Вы должны установить тип аксессуара в tableView:willDisplayCell:forRowAtIndexPath: вместо cellForRowAtIndexPath, чтобы он обновлялся при каждом отображении (а не только при создании).

0 голосов
/ 14 марта 2012

Существует метод табличного представления, называемый clearsselectiononviewwillappear, который вы могли случайно перезаписать.Поведение по умолчанию должно быть ДА.Проверьте Apple документ на UITab

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