3

У меня есть приложение с панелью вкладок с несколькими вкладками с созданным пользователем контентом. Когда каждый контроллер представления загружается, метод viewDidLoad делает HTTP-запросы на сервер для извлечения данных, а затем заполняет его представление соответственно. Однако, как только все данные загружены, представление остается тем же (если контроллер просмотра не выгружен и не перезагружен).Обновить содержимое контроллера контроллера на входе приложения на передний план

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

Существуют ли стандартные методы разработки приложения, чтобы вести себя таким образом? В частности, мне интересно, есть ли UIKit-тонкости, которые я могу использовать, чтобы обновить мои взгляды на «перезагрузке» приложения.

В противном случае я предполагаю, что простой подход состоит в том, чтобы каждый регистр контроллера просмотра для уведомлений в viewDidLoad и прослушивать приложение, входящее в передний план. Затем контроллер может реагировать на каждое уведомление, перезагружая его данные.

ответ

5

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

+1

Оптимизация для этого - определение того, являетесь ли вы видимым VC. Если вы не видите, просто установите грязный флаг и обновите, когда и когда вы становитесь видимыми. viewDidAppear: (BOOL) анимированный поможет вам в реализации вашего грязного флага. – logancautrell

+2

Как вы определяете, видно ли изображение? Я думаю, что это действительно необходимо, так как всегда реагировать на UIApplicationDidBecomeActiveNotification будет нести лишние затраты на перезагрузку данных для просмотров, которые могут не отображаться. Однако viewDidAppear: на самом деле не совсем то, что нам нужно здесь, поскольку оно не срабатывает, когда приложение становится активным. Кажется, что это срабатывает только в том случае, если вид отображается, когда приложение уже активно, но нет, если вид уже отображается, когда приложение переходит из неактивного в активное. – pmc255

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

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