Estoy creando una aplicación y quiero que la barra de estado ocultos. Al probar la aplicación, la barra de estado se oculta, mientras que la pantalla de presentación se muestra, pero una vez que la aplicación esté completamente cargada, la barra de estado vuelve a aparecer.

Estoy usando Xcode 5 y iOS 7, y han intentado desactivar la barra de estado mediante programación

  ([[UIApplication sharedApplication] setStatusBarHidden:YES    
      withAnimation:UIStatusBarAnimationFade];),

de la información.plist archivo, y el uso de los atributos del inspector en el .xib archivo. Nada parece funcionar.

Alguna idea?

InformationsquelleAutor user2397282 | 2013-07-20

14 Comentarios

  1. 220

    Trate de añadir el siguiente método para su aplicación raíz del controlador de vista:

    - (BOOL)prefersStatusBarHidden
    {
        return YES;
    }
    
    • Cómo hacer esto de manera global?
    • También, como se indicó en el Apple docs, usted debe llamar a la [self setNeedsStatusBarAppearanceUpdate]; después de llamar a este método con algo más que el valor por defecto (el valor predeterminado es NO).
    • Compruebe mi respuesta para obtener una solución global.
    • Perfecto, gracias. Yo simplemente no puedo entender por qué iOS 7 está haciendo esto y no respetar XIBs que no contienen NINGÚN estado de la configuración de la barra!
    • La adición de este en un ViewController añade a la pila es todo lo que necesitaba para ocultar la barra de estado en la que viewcontroller; la barra de estado devuelve cuando este viewcontroller es eliminado.
    • A mí no me funciona…
    • ¿DÓNDE te llame setNeedsStatusBarAppearanceUpdate ?!! Dentro de prefersStatusBarHidden?? (Parece que funciona incluso si usted no llama a setNeedsStatusBarAppearanceUpdate.)
    • Creo que lo que manderson está diciendo es que si cambia el valor de retorno de la prefersStatusBarHidden método (como si usted tiene más complicado lógica de sólo ‘retorno SÍ;’) tendrás que llamar a setNeedsStatusBarAppearanceUpdate a fuerza de iOS para llamar a su prefersStatusBarHidden de nuevo.
    • Por CIERTO que cualquiera que esté leyendo, esta es la única solución sólida he encontrado iOS7, stackoverflow.com/a/19200027/294884 !!

  2. 125

    Debe agregar este valor a plist: «Vista basada en el controlador de la barra de estado apariencia» y seleccione «NO«.

    Esto le permitirá configurar la barra de estado para modo oculto. Esto se establece a un mundial, a diferencia de otras respuestas proporcionadas.

    ACTUALIZACIÓN: Si desea que la barra de estado se oculta en la pantalla de presentación no olvides marcar «se Esconden durante el inicio de la aplicación» objetivo de estado de la barra de opciones.
    También, usted puede agregar «barra de Estado está oculto inicialmente» a «» en el plist si usted no quiere hacerlo con el código dentro de la aplicación.

    • Me tomó mucho tiempo darme cuenta de esto. Es un problema que yo creo que todo el mundo tendría y Apple no mencionó es suficiente. me alegro de ayudar…
    • funciona bien, no se olvide de establecer .plist valor para la «barra de Estado está oculto inicialmente» para SÍ.
    • Wow, eso fue lo único que trabajó con Kobold2d 2.1.0 y iOS 7, muchas gracias!
    • ¿Qué pasa si usted desea que esta plist valor a ser que SÍ, pero ocultar la barra de estado por sólo 1 o 2 UIViewControllers?
    • Apple no son realmente los campeones de la compatibilidad con versiones anteriores. Vamos todos a bailar al son de sus flautas y actualización de cada una de nuestras aplicaciones. Lo siento, desahogar su frustración. Causada por Apple.
    • Me di cuenta de que la solución trabajado para todos los simuladores excepto iPhone Retina 4 pulgadas de 64 bits iOS 7.0, donde la barra de estado apareció superpuestas en la pantalla de presentación. Tuve que además de conjunto «de la barra de Estado está oculto inicialmente» para SÍ.
    • Esto es cierto también para regular el iPhone. pero no es tan relevante para el caso. Voy a añadir que, en cualquier caso. gracias
    • finalmente, a mí me funciona. Porque -(BOOL)prefersstatusbarhidden método no funciona en vista de modelo.
    • Usted realmente debe evitar el uso de esta obsoleto enfoque a la aparición de gestión. En su lugar, aprender de vista de los controladores puede controlar la apariencia de la barra de estado.
    • Cómo (sin la construcción de todas las app desde cero)?
    • Esta es la respuesta correcta… porque quiero que aparecen y desaparecen de la barra de tiempo en tiempo y «prefersStatusBarHidden» método es permanente
    • Cierto, pero también podría devolver «NO» en algunos casos (debe ser muy cuidadoso allí).
    • A mí me funcionó, gracias Idan // para mostrar en la vista específico de controlador de UIApplication.compartida.isStatusBarHidden = false // ocultar en vista específico de controlador de UIApplication.compartida.isStatusBarHidden = true

  3. 73

    El código que has publicado obras para iOS 6.1 y abajo. Para iOS 7, Apple ha hecho nuevos métodos disponibles para controlar directamente la barra de estado para cada vista. La desactivación de esta opción en su Info.plist le permitirá ocultar la barra de estado, al menos para el actual Developer Preview (4).

    Barra de estado no va a desaparecer

    Para referencia, por favor, eche un vistazo a la de iOS 7 guía de transición que está disponible en el Apple developer portal.

    • En mi opinión, la respuesta a esto es mejor porque en mi app, solo quiero ocultar la barra de estado en el modo de paisaje, gracias!
    • gracias esto me ayuda ya que quiero ocultar que para mi toda la aplicación
    • En mi opinión, esta respuesta debe ser la mejor respuesta -> se explica aquí developer.apple.com/library/prerelease/ios/documentation/…
    • Yo lo he hecho, pero parece que tiene sólo oculta la barra de estado, sin embargo, mi aplicación está todavía «presionado» por la cantidad de espacio en la barra de estado tomaría, y todavía puedo ver el indicador de la batería!
  4. 36

    bueno, yo trate de ocultar la barra de estado en todas mis app y en la «app»-info.plist y puedo añadir dos filas en el diccionario «Información de la Lista de propiedades» agrego «controlador de Vista basados en la barra de estado de la apariencia» y NO en «barra de Estado está oculto inicialmente»SÍ y para mí funciona n_n’

    Barra de estado no va a desaparecer

    • Esto obliga a su aplicación en un modo de compatibilidad diseñado exclusivamente para hacer que las aplicaciones se ejecutan según lo previsto en iOS 7 cuando los desarrolladores no tienen tiempo para arreglar la aplicación de la nueva forma de hacer las cosas. En su lugar, usted necesita para implementar la prefieren* métodos, en su opinión, los controladores.
  5. 17

    Sin embargo, si utiliza UIImagePicker, la barra de estado aparece de nuevo.

    En ese caso, usted debe ocultar la barra de estado como la de abajo,

    - (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    
    //for iOS7
        if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
    
            [[UIApplication sharedApplication] setStatusBarHidden:YES];
        }
    
    • Estoy teniendo el mismo problema. La barra de estado está oculto hasta que yo uso UIImagePicker. He intentado la solución, y no funciona para mí. ¿Tengo que añadir algo, además el código en tu post?
    • También he añadido – (BOOL)prefersStatusBarHidden { return SÍ; } para ver los controladores. Por favor, inténtelo.
    • no parece funcionar para mí.. debe usted llamar a setNeedsStatusBarAppearanceUpdate?
    • Necesito ocultar la barra de estado en un clic de botón. He probado a continuación el código, pero no trabajó. ¿Alguien por favor me ayude. [[UIApplication sharedApplication] setStatusBarHidden:YES];
    • No funciona…
  6. 8

    Después de una larga búsqueda, finalmente encontré una solución muy sencilla que también se ocupa de la UIImagePickerController problema.

    Como se ha mencionado en las otras respuestas, configurar la barra de estado se oculta en el AppDelegate didFinishLaunching, y establecer el «punto de Vista basado en controlador de la barra de estado de la apariencia» a NO.

    A continuación, en el AppDelegate:

    - (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
    {
          [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    }
    

    et voila – la Barra de Estado permanecerá oculta, incluso cuando el UIImagePickerController es todo.

    Esto es mejor que ‘rehiding’ cada vez que se presente un UIImagePickerController como que permanece oculto en toda la aplicación.

    • Aunque algo todavía parece roto en iOS7 en el iPad, al menos – el UIImagePickerController todavía arroja una barra de estado la segunda vez que se muestra… Hurrrr… 🙁 Actualmente estoy usando el appDelegate junto con escondiendo de nuevo en cada viewWillAppear. Así que, incluso si se ve sucio por un corto tiempo se fija de nuevo rápidamente.
    • Este es el único método que trabajó para mí en iOS8… de alguna manera prefersStatusBarHidden no consigue llamado en mi punto de vista controlador.
  7. 7

    Para ocultar la barra de estado en un determinado UIViewController, simplemente añadir esto:

    -(BOOL)prefersStatusBarHidden
    {
        return YES;
    }
    

    Espero que esto ayude !

    • !! Esta es la solución que funcionó para mí en iOS 9.2, modificando el plist no tuvo ningún efecto.
  8. 4

    He encontrado esta solución para mí. Funciona como un encanto.
    Escribe este código en tu viewcontroller que quería usar UIImagePickerController en.

    - (void)viewWillDisappear:(BOOL)animated
    {
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    }
    - (void)viewWillAppear:(BOOL)animated
    {
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
         }
    
  9. 3

    Además de la respuesta de solos arriba, asegúrese de aplicar la imagePickerControllerDidCancel método y agregar el mismo código no demasiado.

  10. 3

    Solución Rápida

    sólo tiene que añadir esta a la vista de los controladores:

    override func prefersStatusBarHidden() -> Bool {
        return true
    }
    
  11. 2

    Estaba teniendo problemas con UIImagePicker así. Similares a los Solos respuesta, mi solución fue la siguiente. He añadido esta línea de código o:

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    

    a esta función:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
    

    Yo no he probado esto con iOS 6 o más, pero que funciona muy bien en iOS 7.

  12. 0

    Estoy usando Xcode 6, esta solución funciona en iOS 7 y 8 para mí:

    Primero, Establecer el «punto de Vista basado en controlador de la barra de estado de la apariencia» para que no haya NINGÚN archivo plist.

    Segundo, en el AppDelegate, añadir esto:

    - (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
    {
          [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    }
    
  13. 0

    Mi problema era que yo solía controlador de vista de la contención. Sólo la parte superior de la vista controlador, que está incrustada en un controlador de navegación, por ejemplo, puede ocultar o mostrar la barra de estado.

Dejar respuesta

Please enter your comment!
Please enter your name here