Estou escrevendo um aplicativo e preciso alterar a exibição se o usuário estiver olhando para o aplicativo enquanto estiver falando ao telefone.
Eu implementei o seguinte método:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"viewWillAppear:");
_sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height);
}
Mas não está sendo chamado quando o aplicativo retorna ao primeiro plano.
Eu sei que posso implementar:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];
mas eu não quero fazer isso. Prefiro colocar todas as minhas informações de layout no método viewWillAppear: e deixar que isso lide com todos os cenários possíveis.
Eu até tentei chamar viewWillAppear: from applicationWillEnterForeground :, mas não consigo identificar qual é o controlador de exibição atual naquele momento.
Alguém sabe a maneira correta de lidar com isso? Tenho certeza de que estou perdendo uma solução óbvia.
isMemberOfClass
ou isKindOfClass
, dependendo de suas necessidades.
applicationWillEnterForeground:
para determinar quando seu aplicativo voltou a entrar no estado ativo.