Я немного борюсь с жизненным циклом UIViewController
.Как получить данные веб-службы каждый раз, когда отображается контроллер просмотра?
В принципе, у меня есть приложение, состоящее из UINavigationController
, имеющего в настоящее время UITableViewController
в качестве контроллера корневого представления. UITableView
этого UITableViewController
обновляется асинхронным вызовом веб-службы.
До этого момента все работает нормально!
В общем, я хотел бы, чтобы UITableViewController
перезагружал данные для TableView каждый раз, когда отображается ViewController. Это означает, что если я отклоню приложение и запустим другое приложение, а затем вернусь к моему приложению, данные должны быть всегда перезагружены из веб-службы. В принципе, как и приложение Twitter, как пример, который обновляет твиты каждый раз, когда приложение перезапускается.
Для этого я поместил вызов веб-службы в разных местах, чтобы проверить поведение. Я пробовал, viewDidLoad
, viewWillAppear
& viewDidAppear
, но все эти методы вызывается один раз при создании viewController.
Я сделал некоторые исследования здесь, в StackOverflow и там был намек использовать NSNotification
applicationDidBecomeActive
, который делает работу, но я не уверен, что это правильное решение, если добавить больше ViewControllers мое приложение в будущем, потому что я хочу, обновление viewController только тогда, когда этот контроллер также отображается/видим пользователю.
Любые предложения по этой проблеме приветствуются!
Большое спасибо Neo74
Спасибо за ваш ответ! Фактически, я использую singleton-класс (Store), чтобы инкапсулировать все действия веб-службы. При использовании applicationDidBecomeActive и наличии нескольких UIViewControllers, отображающих различную информацию из веб-службы, я просто хотел бы избежать этого, используя NSNotification, все данные UIViewController перезагружаются из веб-службы, даже если отображается только UIViewController. Надеюсь, я объяснил это достаточно хорошо ... :-) – neo74
вы можете иметь ссылку на «текущий» контроллер вида и загружать только связанную с ним информацию – tkanzakic