0

Я немного борюсь с жизненным циклом UIViewController.Как получить данные веб-службы каждый раз, когда отображается контроллер просмотра?

В принципе, у меня есть приложение, состоящее из UINavigationController, имеющего в настоящее время UITableViewController в качестве контроллера корневого представления. UITableView этого UITableViewController обновляется асинхронным вызовом веб-службы.

До этого момента все работает нормально!

В общем, я хотел бы, чтобы UITableViewController перезагружал данные для TableView каждый раз, когда отображается ViewController. Это означает, что если я отклоню приложение и запустим другое приложение, а затем вернусь к моему приложению, данные должны быть всегда перезагружены из веб-службы. В принципе, как и приложение Twitter, как пример, который обновляет твиты каждый раз, когда приложение перезапускается.

Для этого я поместил вызов веб-службы в разных местах, чтобы проверить поведение. Я пробовал, viewDidLoad, viewWillAppear & viewDidAppear, но все эти методы вызывается один раз при создании viewController.

Я сделал некоторые исследования здесь, в StackOverflow и там был намек использовать NSNotificationapplicationDidBecomeActive, который делает работу, но я не уверен, что это правильное решение, если добавить больше ViewControllers мое приложение в будущем, потому что я хочу, обновление viewController только тогда, когда этот контроллер также отображается/видим пользователю.

Любые предложения по этой проблеме приветствуются!

Большое спасибо Neo74

ответ

0

Там нет ничего плохого с помощью applicationDidBecomeActive, чтобы обновить информацию из веб-служб, и если вы планируете добавить вид контроллеров в будущем, еще лучше иметь в Интернете услуг за пределами единого контроллера.

Что вам не следует делать, это поместить код для доступа к WS внутри делегата приложения, вместо этого создайте одноэлементный класс, ответственный за это.

+0

Спасибо за ваш ответ! Фактически, я использую singleton-класс (Store), чтобы инкапсулировать все действия веб-службы. При использовании applicationDidBecomeActive и наличии нескольких UIViewControllers, отображающих различную информацию из веб-службы, я просто хотел бы избежать этого, используя NSNotification, все данные UIViewController перезагружаются из веб-службы, даже если отображается только UIViewController. Надеюсь, я объяснил это достаточно хорошо ... :-) – neo74

+0

вы можете иметь ссылку на «текущий» контроллер вида и загружать только связанную с ним информацию – tkanzakic

 Смежные вопросы

  • Нет связанных вопросов^_^