No se puede ocultar la barra de estado en iOS7
Acabo de actualizar mi iPhone 5 iOS 7 a la versión cuatro beta. Ahora, cuando ejecuto mi aplicación desde Xcode 5 en este iPhone, la barra de estado no se oculta, aunque debería.
No funciona:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
No funciona:
[UIApplication sharedApplication].statusBarHidden = YES;
No puedo iniciar sesión en los foros de desarrolladores de Apple
en el archivo plist de su aplicación, agregue una fila, llámela "Ver apariencia de la barra de estado basada en el controlador" y configúrela en NO
Tenga en cuenta que esto simplemente no funciona si está utilizando UIImagePickerController en la aplicación.
de http://www.openfl.org/developer/forums/general-discussion/iphone-5ios-7-cant-hide-status-bar/ , la solución de mgiroux
Agregue el método en su controlador de vista.
- (BOOL)prefersStatusBarHidden {
return YES;
}
En el Plist agregue las siguientes propiedades.
-> Status bar is initially hidden
= SÍ
-> View controller-based status bar appearance
= NO
Agregue ambos; ahora la barra de estado desaparecerá.
Para ocultar la barra de estado en una vista única, debes usar:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
Al principio, esto no funcionó para mí, y luego vi en la documentación de este método que dice: // Configurar statusBarHidden no hace nada si su aplicación usa el sistema de barra de estado predeterminado basado en UIViewController.
Esto debe hacerse en el archivo plist, agregando la clave View controller-based status bar appearance
configurada en NO
. Y luego funcionó.
Hay muchas combinaciones sugeridas para este problema, pero el problema es que iOS 6 y 7 usan métodos diferentes para ocultar la barra de estado. Nunca he logrado establecer la configuración de plist para habilitar el comportamiento estilo iOS6 en iOS 7, pero si está creando su aplicación para que sea compatible con iOS 6+, debe usar 3 métodos a la vez para garantizar que un controlador de vista en particular oculte el estado. bar:
// for ios 7
- (BOOL)prefersStatusBarHidden{
return YES;
}
// for ios 6
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// explicitly set the bar to show or it will remain hidden for other view controllers
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
Esto debería funcionar independientemente de la configuración de su plist.