Где вы создали свой UILabel
?Если он создан с помощью вашего файла XIB, убедитесь, что вы подключили владельца файла IBOutlet
к правильной метке.Если он не подключен, он не знает, какую метку обновлять.
РЕДАКТИРОВАТЬ: я считаю, что обновление вашей метки из AppDelegate - плохой дизайн кода.Метка действительно должна обновляться из контроллера представления.Я предполагаю, что вы помещаете код в AppDelegate, потому что именно там код вызывается, когда приложение выходит на передний план.Чтобы обновить метку из контроллера представления, когда приложение выходит на передний план, вы можете настроить уведомление в контроллере представления.Пример кода:
- (id)init
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(changeLabel:)
name:UIApplicationWillEnterForegroundNotification
object:nil];
return self;
}
Регистрирует контроллер представления в качестве наблюдателя, который будет получать уведомления каждый раз, когда приложение выйдет на передний план.Таким образом, вы можете хранить этот код в вашем контроллере представления и соответственно обновлять его.
Также убедитесь, что вы отменили регистрацию наблюдателя, когда контроллер представления освобожден, добавив следующее в ваш метод dealloc:
[[NSNotificationCenter defaultCenter] removeObserver:self];