Как обновить табличное представление после возвращения из «подробного представления»? - PullRequest
14 голосов
/ 07 декабря 2008

Я новичок в разработке для iPhone и Apple и работаю над своим первым приложением. Это просто, только с TableView и «подробным представлением», когда выбран элемент в таблице.

Я хочу изменить цвет фона ячейки в TableView на основе некоторых действий, выполненных в моем «подробном представлении».

Когда приложение изначально загружается, я настраиваю цвета в методе -cellForRowAtIndexPath:, но когда пользователь возвращается назад из моего подробного вида, эта функция не вызывается, поэтому в моем табличном представлении не обновляются цвета. Единственный способ обновить это сейчас - это выйти из приложения и запустить его снова. (Я сохраняю их выбор с помощью NSUserDefaults.)

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

Ответы [ 3 ]

34 голосов
/ 07 декабря 2008

Использовать [tableView reloadData] - это заставит представление таблицы работать через строки и перестроится само.

9 голосов
/ 07 декабря 2008

Вы действительно должны сделать это в viewWillAppear:.

Кроме того, вы можете получить видимые ячейки табличного представления, используя метод visibleCells. Из-за способа работы табличных представлений другие ячейки вообще не существуют - прокрутка вызовет метод делегата и создаст новые ячейки (или исключит существующие из них, если вы используете dequeue...).

1 голос
/ 20 марта 2012

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

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