2010-08-18 2 views
1

Я работаю с подклассом UITableViewController, который должен перейти из «Таблицы входа» (таблица, содержащая UITextField для имени пользователя и пароля и ячейки сеанса запуска), когда пользователь прикасается в ячейке «Начало сеанса» UITableViewController необходимо перезагрузить и просто показать одну ячейку с меткой «Выход».Проблема с перезагрузкой данных UITableView

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

Я перезагрузка таблиц так:

[[self tableView] beginUpdates]; 
    [[self tableView] deleteSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationTop]; 
    [[self tableView] insertSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 0)] withRowAnimation:UITableViewRowAnimationTop]; 
    [[self tableView] endUpdates]; 

В зависимости от того, какой таблицы я перезарядка Ranges изменюсь, но это основная идея, есть ли что-то я не хватаю? кажется, работает, я не знаю,

ответ

1
[[self tableView] beginUpdates]; 
[[self tableView] deleteSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 0)] withRowAnimation:UITableViewRowAnimationBottom]; 
[[self tableView] insertSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationBottom]; 
[[self tableView] endUpdates]; 

[[self tableView] beginUpdates]; 
[[self tableView] reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationBottom]; 
[[self tableView] endUpdates]; 

[[self tableView] reloadData]; 

Такое сочетание методов, я не люблю его, оставит его, как это, пока я не найду лучшего решения.

+0

Возможно, мне что-то не хватает ... Почему бы вам не назвать только [[self tableView] reloadData]; пропустите все остальное. – maxpower

+0

@maxpower Это анимирует красиво. – Moshe

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