У меня есть UITableView, который загружает удаленные данные из сети. У меня есть логика в viewWillAppear для обработки обновления данных при необходимости на основе изменений состояния и TTL для набора данных. Это хорошо работает в рамках приложения "сессия", но не эффективно, когда пользователь выходит из приложения к фону и более поздним восстановлениям она непосредственно к этому представлению.
То, что я нахожу, - то, что, когда приложение восстанавливается переднему плану в iOS4 - viewWillAppear не вызывается в представлении - я могу полностью понять, почему это дизайном. Есть ли другой делегат UIView, которого я должен обманывать? Я ничего не определил в документах.
Так как willEnterForeground доступен в делегате приложения, лучший способ обработать это увольнение уведомления от делегата приложения в представлении? Я пропускаю более прямое изящный способ поймать это в UIView?
Спасибо за любые подсказки.
Вы правы насчет вызовов делегатов, хотя то, что вы делаете, мне кажется, что вы захотите приостановить и возобновить свою сетевую активность на основе методов applicationDidBecomeActive:
и applicationWillResignActive:
, которые оба находятся в делегате приложения.
В ответ на ваш вопрос о более прямом способе перехвата этих уведомлений в вашем UIView, если у вас нет удобного доступа к делегату приложения, вы можете зарегистрироваться для получения уведомления о UIApplicationDidBecomeActiveNotification
и UIApplicationWillResignActiveNotification
через центр уведомлений по умолчанию. Это несколько отвлекает вас от привязки делегата приложения к вашему представлению.