Новичок: как мне обновить ячейки TabView / вызвать viewWillAppear в TabView? - PullRequest
0 голосов
/ 14 сентября 2010

Я довольно новичок в программировании для iPhone / ObjC, хотя у меня есть несколько лет опыта в кодировании, особенно в разработке БД.

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

До сих пор я установил главное окно с TabBar (4 вкладки, из-за 4 игроков), каждое из которых подключено к ViewController («FirstViewC», «SeconcViewC» и т. Д.), Который снова устанавливает NavController , Затем NavController имеет TableViewController в качестве первого подпредставления, и когда элемент таблицы выбран, DetailViewController добавляется в качестве подпредставления к NavController (в didSelectRowAtIndexPath).

На данный момент у меня есть объект ("PlayingPiece") с некоторыми свойствами, которые можно изменить в DetailView.

Теперь (в конце концов) вот моя проблема.

Возвращаясь из DetailView (предоставленной ОС кнопкой «Назад» в NavBar), DetailView извлекается из стека подпредставлений (автоматически), и TableView снова становится видимым. Но по какой-то причине изменения в значениях PlayingPiece не отражаются. Когда я прокручиваю нужную ячейку из дисплея, затем возвращаю ее обратно, поскольку вызывается новая настройка ячейки, все отображается так, как нужно.

Очевидно, мне нужно вызвать какое-то «обновление» моих отображаемых ячеек таблицы (или всех их, мы говорим о 10 элементах таблицы максимум, поэтому здесь нет проблем с производительностью). Я хотел бы вызвать sth как [self.tableView reloadData], но ни «viewWillAppear», ни «viewDidAppear» не вызываются в TableViewController.

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

Если есть кто-то с таким предложением, любая помощь очень ценится - это сводит меня с ума ;-) Я использую последний SDK.

Марк

Ответы [ 2 ]

0 голосов
/ 16 сентября 2010

В конце концов я понял (с некоторой внешней помощью), что структура моей настройки контроллера была несколько испорчена.

После выброса одного «слоя» viewWillAppear работал как положено.

Спасибо за ваши предложения в любом случае - я очень ценю вашу поддержку!

Марк

0 голосов
/ 14 сентября 2010

Если вы используете UINavigationController для перемещения и извлечения контроллеров представления, вы можете взглянуть на (UINavigationControllerDelegate):

- navigationController: willShowViewController: animated:

-navigationController: didShowViewController: анимированные:

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