Как реализовать UINavigationControllerDelegate для вызова веб-службы для приложения, управляемого данными - PullRequest
0 голосов
/ 05 февраля 2012

В моем приложении 5 навигационных контроллеров.Один из контроллеров навигации отображает 3 контроллера представления, совместно использующих одни и те же данные (из базы данных Sqlite).Разница лишь в том, что они представляют данные по-другому:

  • ViewController 1 = рецепты, отсортированные по странам
  • ViewController 2 = рецепты, отсортированные по овощам
  • ViewController1 = рецепты, отсортированные по винам для питья

База данных Sqlite снабжена веб-сервисом.Поскольку новые рецепты могут быть добавлены в любое время, мне нужно обновлять базу данных каждый раз, когда приложение становится активным.И поскольку приложение может стать активным на любом из контроллеров представления (в зависимости от того, который выбран, когда приложение перешло в фоновый режим), я должен написать код обновления в файлах реализации контроллера представления 3.

Я думаю, что этометод отстой, потому что веб-сервис вызывается, когда пользователь переключается между контроллерами навигации.Это создает частые и бесполезные обновления трафика и базы данных.Я бы предпочел выполнять работу только один раз за использование приложения (активный / фоновый).Я думал о UINavigationControllerDelegate.Таким образом, я сделаю обновление только один раз, когда приложение станет активным, и какой бы ни был контроллер навигации.

Мои вопросы:

  • Как вы думаете, это хороший метод?или вы бы предложили другое?
  • Знаете ли вы, как реализовать UINavigationControllerDelegate в этом случае?
  • Возможно ли это только в делегате приложения или я могу сделать это снаружи?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 февраля 2012

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

 applicationDidBecomeActive:

вашего appDelegate.Это действительно не должно иметь ничего общего с навигационными контроллерами.

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