Obj-C, UITableViewCellAccessoryDetailDisclosureButton добавлен в неправильную строку после обновления данных? - PullRequest
0 голосов
/ 13 ноября 2011

Я изменил экран в своем приложении и добавил кнопку раскрытия и еще один экран, когда кнопка была нажата, чтобы разрешить редактирование текста в строке.

Однако мне нужна одна из строкникогда не иметь кнопки раскрытия.

Проблема в том, что таблица отсортирована по алфавиту, и когда текст изменяется (из-за обновления на экране редактирования), позиция строки может измениться, и в некоторых случаях я получаюкнопка раскрытия в строке, где я этого не хочу.

У меня есть

[self rebuildItems];
[table reloadData];

в viewWillAppear

И

if (![cell.textLabel.text isEqualToString:@"Uncategorized"]) {
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}

в cellForRowAtIndexPath

Куда я иду не так?

1 Ответ

1 голос
/ 13 ноября 2011

В вашем cellForRowAtIndexPath вам нужно каждый раз сбрасывать cell.accessoryType. Причина в том, что обычный код перерабатывает ячейки, и вы можете получить переработанную ячейку, имеющую accessoryType, из другой ячейки, и она не будет запущена как некатегоризированная.

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