У меня есть приложение с панелью вкладок с несколькими вкладками с созданным пользователем контентом. Когда каждый контроллер представления загружается, метод viewDidLoad делает HTTP-запросы на сервер для извлечения данных, а затем заполняет его представление соответственно. Однако, как только все данные загружены, представление остается тем же (если контроллер просмотра не выгружен и не перезагружен).Обновить содержимое контроллера контроллера на входе приложения на передний план
Многие другие приложения с пользовательским контентом имеют аналогичное поведение, за исключением того, что каждое представление перезагружается, если приложение переходит в фоновый режим, а затем снова возвращается на передний план. То есть, когда пользователь переключается между различными вкладками, пока приложение активно, контент не будет автоматически обновляться. Если пользователь «прекратит» приложение, а затем вернется к нему позже, просмотры будут перезагружены.
Существуют ли стандартные методы разработки приложения, чтобы вести себя таким образом? В частности, мне интересно, есть ли UIKit-тонкости, которые я могу использовать, чтобы обновить мои взгляды на «перезагрузке» приложения.
В противном случае я предполагаю, что простой подход состоит в том, чтобы каждый регистр контроллера просмотра для уведомлений в viewDidLoad и прослушивать приложение, входящее в передний план. Затем контроллер может реагировать на каждое уведомление, перезагружая его данные.
Оптимизация для этого - определение того, являетесь ли вы видимым VC. Если вы не видите, просто установите грязный флаг и обновите, когда и когда вы становитесь видимыми. viewDidAppear: (BOOL) анимированный поможет вам в реализации вашего грязного флага. – logancautrell
Как вы определяете, видно ли изображение? Я думаю, что это действительно необходимо, так как всегда реагировать на UIApplicationDidBecomeActiveNotification будет нести лишние затраты на перезагрузку данных для просмотров, которые могут не отображаться. Однако viewDidAppear: на самом деле не совсем то, что нам нужно здесь, поскольку оно не срабатывает, когда приложение становится активным. Кажется, что это срабатывает только в том случае, если вид отображается, когда приложение уже активно, но нет, если вид уже отображается, когда приложение переходит из неактивного в активное. – pmc255