Per quelli ancora in difficoltà, il sotto funziona per iOS9.
Si aggiorna il rootViewController preferisceStatusBarHidden la funzione chiamando dal proprio figlio/nipote viewControllers. Funziona dove aggiungi childViewControllers direttamente al tuo rootViewController.
Non è necessario impostare nulla nel file info.plist, ma l'impostazione 'statusBarIsInitiallyHidden' funziona indipendentemente dal seguente.
In primo luogo, nella vostra RootViewController, aggiungere il seguente:
-(void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateStatusBarAppearance:) name:@"kStatusBarAppearance" object:nil];
}
-(void)updateStatusBarAppearance:(NSNotification *)n {
statusBarIsHidden = [n.object boolValue];
[self setNeedsStatusBarAppearanceUpdate];
}
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent; //optional
}
-(BOOL)prefersStatusBarHidden{
return statusBarIsHidden;
}
Poi, nel singolo controller della vista in cui si desidera nascondere la barra di stato, chiamare questo:
-(void)viewDidLoad {
[[NSNotificationCenter defaultCenter] postNotificationName:@"kStatusBarAppearance" object:[NSNumber numberWithBool:true]];
}
-(void)popSelf {
[[NSNotificationCenter defaultCenter] postNotificationName:@"kStatusBarAppearance" object:[NSNumber numberWithBool:false]];
}
fonte
2016-08-31 11:35:54
controllare solo modo modo pianificato [questo ] (http://stackoverflow.com/q/19067899/3388012) –
Funziona ancora bene.Se si desidera applicare la funzione a tutti i View Controller, considerare l'utilizzo dell'ereditarietà. – Tim