Sto scrivendo un'app e devo cambiare la visualizzazione se l'utente sta guardando l'app mentre parla al telefono.
Ho implementato il seguente metodo:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"viewWillAppear:");
_sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height);
}
Ma non viene chiamato quando l'app torna in primo piano.
So che posso implementare:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];
ma non voglio farlo. Preferirei piuttosto mettere tutte le mie informazioni di layout nel metodo viewWillAppear: e lasciare che gestiscano tutti i possibili scenari.
Ho anche provato a chiamare viewWillAppear: da applicationWillEnterForeground :, ma non riesco a individuare quale sia il controller di visualizzazione corrente a quel punto.
Qualcuno conosce il modo corretto di affrontare questo? Sono sicuro che mi manca una soluzione ovvia.
isMemberOfClass
o isKindOfClass
, a seconda delle tue esigenze.
applicationWillEnterForeground:
per determinare quando l'applicazione è rientrata nello stato attivo.