iOS 5 viewWillAppear не вызывается при подключении NavigationController - PullRequest
0 голосов
/ 18 января 2012

Я учусь разрабатывать приложения для iPhone с использованием iOS 5.

Я пытаюсь создать список контактов (чтобы узнать о базовых данных).

У меня есть UITableView, встроенный в UINavigationController (я сделал это через Редактор -> Встроить -> Контроллер навигации).

В конце моего saveContact действия у меня есть строка:

[self.navigationController popViewControllerAnimated:YES];

Чтобы перейти от формы создания контакта к UITableView, в котором перечислены все контакты. Код, который выбирает контакты, находится в viewWillAppear.

Проблема в том, что при открытии формы создания контакта новый контакт не отображается в списке.

Я нашел в документации Apple, что я должен добавить UINavigationControllerDelegate к своему UITableViewController, но безуспешно.

Есть предложения?

1 Ответ

1 голос
/ 18 января 2012

Вам необходимо реализовать метод navigationController:willShowViewController:animated: протокола UINavigationController в вашем UITableViewController и настроить делегата контроллера навигации на контроллер представления таблицы.В вашей реализации метода проверьте, совпадает ли отображаемое представление с вашим представлением, и если это так, извлеките результаты.

Если вы действительно хотите интегрировать базовые данные с табличным представлением, ярекомендовал бы заглянуть в NSFetchedResultsController.Это упрощает обработку обновлений для резервного хранилища данных, поэтому, если позже вы добавите функцию фоновой синхронизации, фоновый поток может постоянно обновлять хранилище, а NSFetchedResultsController сможет обрабатывать обновление таблицы для вас.Это также упростит ваш текущий пример, так как все, что вам нужно будет сделать, это отправить save: в Core Data, а затем контроллер результатов начнет обновлять вашу таблицу, без использования viewWillAppear: метода

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