No se puede ocultar la barra de estado en iOS7

Resuelto Melih Büyükbayram asked hace 11 años • 26 respuestas

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

Melih Büyükbayram avatar Aug 05 '13 20:08 Melih Büyükbayram
Aceptado

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

Un ejemplo de agregar View Base Controller a su configuración de información en Xcode

satgi avatar Aug 31 '2013 16:08 satgi

Agregue el método en su controlador de vista.

- (BOOL)prefersStatusBarHidden {
    return YES;
}
invoodoo avatar Sep 11 '2013 12:09 invoodoo

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á.

user1179912 avatar Sep 19 '2013 08:09 user1179912

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 appearanceconfigurada en NO. Y luego funcionó.

Debora Fortini avatar Aug 30 '2013 01:08 Debora Fortini

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.

SaltyNuts avatar Mar 10 '2014 18:03 SaltyNuts