Я пишу програму, і мені потрібно змінити погляд, якщо користувач дивиться на додаток під час розмови по телефону.
Я реалізував такий метод:
- (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:, але я не можу точно визначити, який є поточним контролером подання в цій точці.
Хтось знає правильний спосіб боротьби з цим? Я впевнений, що я пропускаю очевидне рішення.
isMemberOfClass
або isKindOfClass
, залежно від ваших потреб.
applicationWillEnterForeground:
щоб визначити, коли ваша програма знову перейшла в активний стан.