Я пишу приложение, и мне нужно изменить представление, если пользователь смотрит на приложение во время разговора по телефону.
Я применил следующий метод:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"viewWillAppear:");
_sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height);
}
Но он не вызывается, когда приложение возвращается на передний план.
Я знаю, что могу реализовать:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];
но я не хочу этого делать. Я бы предпочел разместить всю информацию о макете в методе viewWillAppear: и позволить этому обрабатывать все возможные сценарии.
Я даже попытался вызвать viewWillAppear: from applicationWillEnterForeground:, но я не могу точно определить, что является текущим контроллером представления в этой точке.
Кто-нибудь знает правильный способ справиться с этим? Я уверен, что мне не хватает очевидного решения.