Ответ 1
Используйте [tableView reloadData]
-, который заставит табличное представление работать с строками и перестроить себя.
Я новичок в разработке iPhone и Apple и работаю над своим первым приложением. Это просто с помощью TableView и "подробного представления", когда выбран элемент в таблице.
Что я хочу сделать, это изменить цвет фона ячейки в TableView на основе некоторых действий, предпринятых в моем "подробном представлении".
Когда приложение изначально загружается, я настраиваю цвета в методе -cellForRowAtIndexPath:
, но когда пользователь переводит обратно из моего подробного представления, что функция не вызывается, поэтому в моем представлении таблицы не обновляются цвета. Единственный способ обновить это сейчас - выйти из приложения и снова запустить его. (Я сохраняю их выбор с помощью NSUserDefaults.)
Очевидно, что я хочу, чтобы представление таблицы было обновлено, когда они возвращаются из подробного представления, но я не знаю, как получить ссылку на ячейку и в каком методе это сделать. Я предполагаю, что он должен идти в -viewDidAppear
, так как это называется всем, что показано в представлении.
Используйте [tableView reloadData]
-, который заставит табличное представление работать с строками и перестроить себя.
Вы должны сделать это в viewWillAppear:
.
Кроме того, вы можете получить видимые ячейки представления таблицы с помощью метода visibleCells
. Из-за того, как работают представления таблиц, других ячеек вообще не существует - прокрутка вызовет метод делегата и создаст новые ячейки (или удалит существующие, если вы используете dequeue...
).
Я бы добавил, что если он находится в режиме редактирования, а затем сохраняет некоторую измененную информацию, хранящуюся в вашей таблице, у вас должен быть делегат, который обнаруживает, когда данные были фактически сохранены, а затем перезагрузите таблицу. viewWillAppear будет запущен каждый раз, когда появится ваше представление. Я думаю, что вы после этого только после того, как данные были изменены, вы хотите обновить таблицу.