Как я могу обновить данные представления, когда они повторно пробуждаются от фона в iOS4? - PullRequest
1 голос
/ 27 февраля 2011

Я создал приложение с внешними настройками в комплекте настроек.Все работает отлично.Я сохраняю данные о каждом взаимодействии с пользователем и читаю данные о каждом переключении представления (используя триггер viewDidAppear).

Проблема возникает, когда пользователь выходит из приложения, затем переходит в «Настройки», изменяет настройки и затем повторно запускает приложение.В iOS4, насколько я могу судить, приложение никогда не «выходит», оно просто уходит в фон.Таким образом, когда пользователь «перезапускает» приложение, оно возвращается к тому же представлению, в котором они его оставили, однако ни одно из изменений настроек не вступает в силу, пока пользователь не переключит представления, не запустив viewDidAppear и мои соответствующие функции загрузки переменных и обновления экрана.

Проще говоря, мой вопрос:

есть ли функция, аналогичная viewDidAppear, которая может обнаружить, что приложение "пробудилось" от фона , и гдеЗатем я могу запустить функции чтения данных и обновления экрана?


Для пояснения, вот код, который я пытаюсь вызвать в ChartViewController.m:

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [self loadChartSettings];
    [self.tableView reloadData];    
}

Я не знаюдаже не знаю, с чего бы я начал помещать это в AppDelegate, потому что весь мой код обработки и генерации отображения находится в ChartViewController.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2011

Когда ваше приложение перезапускается, ваш делегат получает сообщение -applicationDidBecomeActive:. Реализуйте этот метод, чтобы прочитать пользовательские значения по умолчанию. Кроме того, если вы хотите сделать это в другом классе, зарегистрируйтесь для получения уведомления UIApplicationDidBecomeActiveNotification.

1 голос
/ 27 февраля 2011

Вы, вероятно, ищете эту функцию в своем UIAppDelegate:

- (void)applicationDidBecomeActive:(UIApplication *)application;

Кроме того, это может быть полезно для вас:

-(void)applicationWillEnterForeground:(UIApplication*)application;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...