Какая-то ячейка в табличном представлении должна быть отмечена галочкой?

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

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


person Kuldeep Singh    schedule 14.10.2010    source источник


Ответы (2)


В -tableView:cellForRowAtIndexPath: вы должны установить, должна ли отображаться галочка на основе вашей внутренней модели (которая в вашем случае исходит из NSUserDefaults). В tableView:didSelectRowAtIndexPath: не просто сделайте галочку видимой в ячейке, но и сохраните ее во внутренней модели. Таким образом, когда ячейка отображается снова, она будет отображаться правильно.

person Johan Kool    schedule 14.10.2010

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

Относительно проверки снова во второй раз. Просто сохраните индекс строки в NSUserDefault и поместите условие в cellForRowAtIndexPath, чтобы при совпадении индекса он оставался отмеченным.

Надеюсь это поможет..

УДАЧНОГО КОДИРОВАНИЯ...

person Suresh Varma    schedule 14.10.2010
comment
Это плохой совет. Повторно используйте ячейки, ведь нам нужна плавная прокрутка. - person Johan Kool; 14.10.2010
comment
Я знаю Йохана, почему я ответил на его вопрос только ниже этой строки. Я знаю, что ячейка многоразового использования - это единственное, что рекомендуется, но мы должны знать, как все сломать. Итак, моя строка идентификатора ячейки была предназначена только для знаний, а не для реализации. Тем не менее из-за понижения голоса я наконец удалил его. Спасибо за предложение - person Suresh Varma; 14.10.2010