Как применить настройки изменения при перезагрузке? - PullRequest
2 голосов
/ 14 августа 2011

Я работаю над проектом на iPhone iOS 4 с Xcode 4.

У меня есть вид с UIButton.Название UIButton устанавливается в viewDidLoad.Поэтому, когда приложение запускается, у кнопки есть заголовок.

Однако у моего приложения есть пакет настроек, и заголовок кнопки также можно изменить в приложении настроек.Поэтому я нажимаю кнопку «Домой», приложение закрывается, захожу в приложение «Настройки» и задаю новый заголовок кнопки.

Когда я закрываю «Настройки» и перезапускаю приложение, заголовок кнопки не обновляется,старый заголовок кнопки.Все как у меня осталось.

Только если я выключу iPhone, потом включу и перезапущу свое приложение (т.е. при полном перезапуске) кнопка будет с новым названием.

КакУбедитесь, что заголовок кнопки изменяется при перезапуске приложения (не полностью)?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 14 августа 2011

Вы хотите обновить настройки в applicationDidEnterForeground. Это вызывается, когда возобновляется.

Редактировать: Опечатка должна была быть

- (void)applicationWillEnterForeground:(UIApplication *)application

см. Документы: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

0 голосов
/ 15 августа 2011

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

0 голосов
/ 14 августа 2011

Я ошибся, полагая, что сообщение viewWillAppear будет отправлено ViewController, когда приложение снова станет активным после возврата из приложения «Настройки».Однако, когда приложение становится активным, публикуется уведомление, поэтому вы можете выполнить то, что хотите, зарегистрировав свой ViewController для получения UIApplicationDidBecomeActiveNotification уведомлений:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshButtonTitle:) name:UIApplicationDidBecomeActiveNotification object:nil];

и затем создать соответствующий методВаш ViewController будет вызываться при срабатывании уведомления:

- (void)refreshButtonTitle:(NSNotification *)notification {
// update the title of your button here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...