En iOS 7 el UIStatusBar
ha sido diseñado de una manera que se funde con la vista como este:
(GUI diseñada por Tina Tavčar)
-
Es genial, pero algo va a estropear su vista cuando tengo algo en la parte de arriba de su punto de vista, y se convierte en superpuesta con la barra de estado.
-
Hay una solución simple (como la configuración de una propiedad en info.plist) que pueden cambiar la forma en que funciona [no se superponen] volver a cómo es en iOS6?
-
Sé que una solución más sencilla es tener
self.view.center.x
+ 20 puntos por cada controlador de vista, pero el cambio de ellos tornillo de otras dimensiones de seguridad (que tienen diferentesself.view.center.x
puede causar problema a la costumbre desemboca, etc.) y de repente se convierte en un trabajo tedioso que es mejor evitar. -
Que realmente va a estar contento si alguien puede proporcionarme un one-liner solución para esto.
P. S. sé que puedo ocultar la barra de estado, haciendo las cosas como tener
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
En didFinishLaunchingWithOptions
método, pero eso es una solución, un atajo que evita el problema, así que no considero que una solución real.
- Lamentablemente negro barras de estado están en desuso en ios 7
- Yo voy a estar de acuerdo con @GangstaGraham. Los colores son sólo precioso! Para responder a tu pregunta, me temo que no puede. La razón de la barra de estado está diseñado como que ahora es debido a la translucidez es el nuevo iOS cosa y está diseñado para dar «profundidad» a una solicitud diciendo que es en la parte superior de algo, así que hay algo debajo.
- ¿Has probado la configuración de preferredStatusBarStyle a UIStatusBarDefault? Checkout iOS 7 UIViewController Documentación
- Tener
UIStatusBarDefault
para la barra de estado sólo hace que su contenido sea de color negro. No va a hacer que la forma en que las funciones de regreso a cómo es en iOS6. - Suerte con esto? Me encanta iOS7 pero esto me está volviendo loco!
- Por favor, compruebe si la Manzana
iOS 7 Transition Guide
(developer.apple.com/library/prerelease/ios/documentation/…), específicamente la «Actualización de la interfaz de usuario» en la sección de puede ayudar. - Hice un fragmento, gist 6554189, para evitar que la nueva «barra de estado de la función de superposición». Se utiliza el diseño automático y el recientemente introducido superior de la guía de diseño. Funciona sólo con autodiseño. Yo no prueba dentro del contenedor de vista de los controladores, pero podría ser un buen punto de partida.
- Archy Espera, ¿Cómo se te corder / efecto de sombra sobre su punto de vista ? Traté de tener el mismo efecto desde iOS7 está disponible para los desarrolladores, y mi manera de hacerlo es menos sexy que el tuyo!! 🙂
- Puedo publicar respuesta allí, stackoverflow.com/questions/18917377/… Ahora la pregunta congelado.
- Sólo por curiosidad, ¿cuál es el nombre de la aplicación? tiene una muy buena interfaz de usuario.
- Este enlace tiene información interesante sobre este tema: doubleencore.com/2013/09/…
- El uso de esta respuesta demasiado stackoverflow.com/a/19025547/1545180
- ¿Cómo te las arreglas para conseguir la barra de estado transparente? Puedo conseguir uno negro en ios6 aplicación emigraron a ios7 y se añade la barra de estado a través de:si ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { [aplicación setStatusBarStyle:UIStatusBarStyleLightContent]; auto.de la ventana.clipsToBounds =SÍ; auto.de la ventana.frame = CGRectMake(0,20,auto.de la ventana.marco.tamaño.anchura,de auto.de la ventana.marco.tamaño.altura); auto.de la ventana.límites = CGRectMake(0,0, auto.de la ventana.marco.tamaño.anchura, de auto.de la ventana.marco.tamaño.altura); }
- Si usted quiere olvidarse de lo que hay de nuevo en iOS 7 y el uso de iOS 6 y anteriores estilo, echa un vistazo a esta respuesta
Esta es la cruz-publicado desde un blog post que escribí, pero aquí está el resumen completo en la barra de estado, barras de navegación, y el contenedor de vista de los controladores en iOS 7:
No hay manera de preservar el iOS 6 de estilo de diseño de la barra de estado. La barra de estado siempre se superponen su aplicación en iOS 7
No hay que confundir la barra de estado de la apariencia con el estado de la barra de diseño. La apariencia de luz (o predeterminado) no afecta a la forma de la barra de estado se presenta (cuadro/altura/se superponen). Es importante señalar además que el sistema de la barra de estado ya no tiene ningún color de fondo. Cuando la API se refiere a UIStatusBarStyleLightContent, se significa que el texto blanco sobre un fondo claro. UIStatusBarStyleDefault es el texto negro sobre un fondo claro.
Barra de estado de la apariencia es controlada a lo largo de uno de los dos mutuamente-exclusiva caminos: puede establecer mediante programación en la manera tradicional, o UIKit actualizará la apariencia para usted, basado en algunas de las nuevas propiedades de UIViewController. La última opción está activada por defecto. Verificación de la aplicación plist valor de «ViewController Basado en la Apariencia de la Barra de Estado» para ver cuál es el que usted está utilizando. Si este valor se establece en SÍ, cada nivel superior de controlador de vista de su aplicación (aparte de un estándar de UIKit contenedor de vista controlador) debe reemplazar preferredStatusBarStyle, devolviendo el defecto o la luz de estilo. Si edita el plist valor de a NO, entonces usted puede manejar la barra de estado de la apariencia mediante el conocido UIApplication métodos.
UINavigationController va a alterar la altura de su UINavigationBar a 44 puntos o 64 puntos, dependiendo de un lugar extraño e indocumentados conjunto de restricciones. Si el UINavigationController detecta que la parte superior de la vista en su marco es visualmente contiguos con su UIWindow la parte superior, a continuación, dibuja su barra de navegación, con una altura de 64 puntos. Si la vista en su parte superior no es contigua con la UIWindow superior (aunque fuera por sólo un punto), a continuación, dibuja su barra de navegación en el modo «tradicional», con una altura de 44 puntos. Esta lógica se realiza por UINavigationController incluso si se trata de varios niños abajo en el interior del controlador de vista de la jerarquía de su aplicación. No hay manera de evitar este comportamiento.
Si el suministro de una barra de navegación personalizada de la imagen de fondo que es sólo el 44 puntos (88 píxeles) de altura, y el UINavigationController opinión de los límites de los partidos de la UIWindow límites (como se discutió en el #4), la UINavigationController va a dibujar la imagen en el fotograma (0,20,320,44), dejando a los 20 puntos de color negro opaco espacio por encima de su imagen personalizada. Esto puede confundir a pensar que son un ingenioso programador que omite la regla #1, pero usted se equivoca. La barra de navegación es todavía 64 puntos de altura. La incorporación de un UINavigationController en una diapositiva a revelar el estilo de vista de la jerarquía hace que este muy claro.
Cuidado de la confusamente llamado edgesForExtendedLayout propiedad de UIViewController. Ajuste de edgesForExtendedLayout no hace nada en la mayoría de los casos. La única manera de UIKit utiliza esta propiedad es si se agrega un controlador de vista a un UINavigationController, entonces el UINavigationController utiliza edgesForExtendedLayout para determinar si es o no su hijo controlador de vista debe ser visible debajo de la barra de navegación /barra de estado área. Configuración de edgesForExtendedLayout en el UINavigationController en sí no hace nada para alterar o no, si la UINavigationController tiene un 44 o 64 punto alto de la barra de navegación de la zona. Ver #4 para que la lógica. Diseño Similar lógica se aplica a la parte inferior de su vista cuando se utiliza una barra de herramientas o UITabBarController.
Si todo lo que usted está tratando de hacer es evitar su costumbre niño controlador de vista de underlapping la barra de navegación cuando dentro de un UINavigationController, a continuación, establezca edgesForExtendedLayout a UIRectEdgeNone (o, al menos, una máscara que excluye UIRectEdgeTop). Establezca este valor tan pronto como sea posible en el ciclo de vida de su controlador de vista.
UINavigationController y UITabBarController también tratará de la almohadilla de la contentInsets de las vistas de tabla y de la colección de vistas en su subvista jerarquía. Esto se hace de una manera similar a la barra de estado de la lógica de la #4. Hay una manera programática de la prevención de este, mediante el establecimiento de automaticallyAdjustsScrollViewInsets NO en su tabla de puntos de vista y las vistas de colección (el valor predeterminado es yes (SÍ). Esto plantea algunos problemas graves para Susurro y Contestación, ya que el uso de contentInset ajustes para controlar el diseño de la tabla de puntos de vista en respuesta a la barra de herramientas y movimientos del teclado.
A reiterar: no hay manera de volver a iOS 6 estilo de la barra de estado de la lógica de diseño. Con el fin de aproximar este, tienes que mover todo a la vista de los controladores de tu aplicación en un contenedor de vista que es compensado por 20 puntos de la parte superior de la pantalla, dejando un intencionalmente negro detrás de la barra de estado para simular la antigua apariencia. Este es el método que usaron en la Contestación y el Susurro.
Apple está empujando muy duro para asegurarse de que no trate de hacer #9. Ellos quieren que nosotros para el rediseño de todas nuestras aplicaciones para underlap la barra de estado. Hay muchos argumentos convincentes, sin embargo, tanto la experiencia de usuario y razones técnicas, ¿por qué esto no es siempre una buena idea. Usted debe hacer lo que es mejor para los usuarios y no simplemente seguir la fantasía de la plataforma.
[[UIApplication sharedApplication] statusBarFrame].size.height
como otras aplicaciones, tales como la aplicación del teléfono, puede cambiar la altura.No es, aparentemente, no hay manera de revertir el iOS7 barra de estado de vuelta a cómo funciona en iOS6.
Sin embargo, siempre podemos escribir algunos de los códigos y gire la barra de estado en iOS6, y que este es el camino más corto que se me ocurre:
Conjunto
UIViewControllerBasedStatusBarAppearance
aNO
eninfo.plist
(Para dejar de tener la vista de los controladores de ajuste de la barra de estado estilo, para que podamos establecer la barra de estado estilo mediante el uso de la UIApplicationstatusBarStyle método).En el AppDelegate del
application:didFinishLaunchingWithOptions
, llamadacon el fin de:
Comprobar si es iOS 7.
Establecer la barra de estado del contenido a ser de color blanco, en contraposición a UIStatusBarStyleDefault.
Evitar subvistas cuyos marcos se extienden más allá de los límites visibles de la muestra (por las vistas de la animación en la vista principal desde la parte superior).
Crear la ilusión de que la barra de estado ocupa espacio, como es en iOS 6, por el desplazamiento y el tamaño de la aplicación del marco de la ventana.
De las aplicaciones con la rotación de la pantalla,
uso NSNotificationCenter para detectar los cambios de orientación mediante la adición de
en
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
y crear un nuevo método en el AppDelegate:De modo que cuando los cambios de orientación, se activará una instrucción switch para detectar la aplicación de la orientación de la pantalla (Vertical, de arriba a Abajo, el Paisaje de la Izquierda, o Paisaje a la Derecha) y el cambio en la aplicación del marco de la ventana, respectivamente, para crear el iOS 6 barra de estado de la ilusión.
Para cambiar el color de fondo de la barra de estado:
Agregar
en
AppDelegate.h
para hacerbackground
una propiedad en la clase y prevenir el ARCO de cancelar la asignación. (Usted no tiene que hacerlo si no estás usando el ARCO.)Después de que usted sólo tiene que crear la UIWindow en
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
:No olvides
@synthesize background;
después de@implementation AppDelegate
!UIViewControllerBasedStatusBarAppearance
aNO
en lugar deYES
. No he entendido la documentación y el pensamientoYES
que hacer el trabajo. He corregido ahora.UIWindow
tendrá que ser creado para el fondo. Voy a actualizar mi respuesta para eso.[[[[UIApplication sharedApplication] delegate] window] insertSubview:modalVC.view aboveSubview:anotherVC.view];
?) Puedes dar más detalles sobre cómo y dónde presentar el modal de controlador de vista y cómo se descartarla? Si tieneswindow.clipsToBounds =YES;
en el AppDelegate, entonces no hay nada en esa ventana debe estar debajo de la barra de estado, a menos que tengas los puntos de vista en la otra ventana que ha creado usted mismo. A continuación, sólo tiene a desplazar y cambiar el tamaño de la ventana.self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
justo después deself.window.frame = ...
en la instrucción if.self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
después deself.window.frame = ...
en la declaración de si el trabajo para usted?Navigationbar
¿Qué hacer?self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
todavía mi top es llegar cortada… cuando yo usoself.window.bounds = CGRectMake(0, 0, self.window.frame.size.width, self.window.frame.size.height);
funciona (0 en lugar de 20 en la posición y).. **, pero sólo 10px parte superior se cortan). alguna idea de por qué?_background.windowLevel = UIWindowLevelStatusBar - 1;
UIApplicationDidChangeStatusBarOrientationNotification
20
para la determinación de la altura de la barra de estado. Uso[[UIApplication sharedApplication] statusBarFrame].size.height
. Ciertos escenarios puede aumentar el tamaño de la barra de estado, como cuando en una llamada de teléfono.he resuelto el problema con el código siguiente. Esto es para agregar una barra de estado.didFinishLaunchingWithOptions
Nota: iOS 6/7 Deltas sólo aparecen si se desmarca la casilla «Usar el diseño Automático» para el Controlador de Vista en el «Inspector de Archivo» (a la izquierda del icono) en el panel de detalles.
SOLUCIÓN :
Establece en su viewcontroller o en rootviewcontroller por reemplazar el método :
Aquí otro enfoque para los proyectos que hacen uso extensivo de las Storyboard:
OBJETIVO:
Objetivo de este enfoque es el de recrear la misma barra de estado estilo de iOS7 como lo hubo en iOS6 (véase la pregunta del título «de iOS 7 la Barra de Estado de Regresar a iOS 6 estilo?»).
RESUMEN:
Para lograr esto usamos el Guión tanto como sea posible por el cambio de elementos de interfaz de usuario, que se superponen por la barra de estado (en virtud de iOS 7) hacia abajo, mientras que el uso de los deltas para revertir la baja de cambio de diseño para iOS 6.1 o anterior. El resultado de espacio extra en iOS 7 es ocupada por una UIView con el fondo conjunto para el color de nuestra elección. El último puede ser creado en el código o usando el Guión gráfico (ver ALTERNATIVAS a continuación)
SUPUESTOS:
Para obtener el resultado deseado cuando los pasos siguientes, se supone que
View controller-based status bar appearance
se establece en NO, y que suStatus bar style
está establecido a «Transparente negro estilo (alfa de 0.5)» o «negro Opaco estilo». Ambas opciones se pueden encontrar/o añadida en virtud de la «Info» en la configuración del proyecto.PASOS:
Agregar una subvista a la UIWindow para servir como su barra de estado de fondo. Para lograr esto, se añade lo siguiente a su AppDelegate del
application: didFinishLaunchingWithOptions:
después demakeKeyAndVisible
Desde que se agregan mediante programación a un fondo para iOS 7 SÓLO, usted tendrá que ajustar el diseño de la interfaz de usuario elementos que se superponen mediante la barra de estado en consecuencia, mientras que la preservación de su diseño para iOS6. Para lograr esto, haga lo siguiente:
Use Autolayout
está desactivada para su Guión gráfico (esto es porque de lo contrario «iOS 6/7 Deltas» no se muestra en el Tamaño del Inspector). Para hacer esto:ALTERNATIVAS:
Para añadir aún menos código en storyboard-pesado proyectos y tener la barra de estado de fondo de rotación automática, en lugar de mediante programación la adición de un fondo para la barra de estado, se puede añadir un color ver a cada controlador de vista de que se encuentra en la parte superior de dicho viewcontroller de la vista principal. A continuación, cambiar la altura del delta de este nuevo punto de vista a la misma cantidad negativa como de la vista de la altura (para hacerlo desaparecer bajo iOS 6).
La desventaja de esta alternativa (aunque tal vez insignificante teniendo en cuenta la rotación automática de la compatibilidad) es el hecho de que este punto de vista no es visible inmediatamente si usted está viendo el Storyboard para iOS 6. Sólo se sabe que está allí si usted tenía una mirada en el Documento «Esquema» en el Storyboard.
Si usted no desea que su vista a los controladores de ser superpuesta en la barra de estado (y barras de navegación), desactive la casilla «Extender los Bordes en la parte Superior Bares» en Interface Builder en Xcode 5.
Apple lanzó Técnica de la P&UN QA1797: Prevención de la Barra de Estado, Cubriendo Sus puntos de vista. Funciona muy bien para el iOS 6 y iOS 7 versiones.
He visto muchas, muchas, muchas, muchas y muchos tutoriales para solucionar este maldito problema. Pero ninguno de ellos funciona! Aquí está mi solución, y funciona para mí:
La lógica es simple. Yo cambio todos los niños puntos de vista sobre el mismo.vista con 20 píxeles.
Eso es todo. Luego, la captura de pantalla de la pantalla al igual que iOS 6 lo hicieron. Odio el iOS7 barra de estado! ~»~
Una pequeña alternativa a Archy Holt respuesta, un poco más simple:
una. Conjunto de
UIViewControllerBasedStatusBarAppearance
aNO
en info.plistb. En
AppDelegate
‘sapplication:didFinishLaunchingWithOptions:
, llame al:Y agregar el método:
También se puede considerar la creación de subclases
UIWindow
para manejarUIApplicationDidChangeStatusBarOrientationNotification
sí mismo.He utilizado esto en mi punto de vista de los controladores, es muy sencillo.
Añadir estas líneas en todas sus viewDidLoad métodos:
Pruebe este sencillo método….
Paso 1:Para cambiar en solo
viewController
Paso 2: Para cambiar en toda la aplicación
Paso 3: agregar También esta en cada
viewWillAppear
para ajustarstatusbar
altura paraiOS7
Hay una opción en el Interface Builder, que llama a la iOS 6/7 Delta propiedad que tienen como objetivo resolver el desplazamiento problema.
Tomar una mirada al Desbordamiento de Pila pregunta Interface Builder: ¿cuáles son los UIView del Diseño de iOS 6/7 Deltas para?.
Que he alcanzado la barra de estado como el de iOS 6 en iOS 7.
Conjunto UIViewControllerBasedStatusBarAppearance a NO en información.plist
Pase este código en
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
métodoPuede empujar hacia abajo todos sus puntos de vista por 20 píxeles.A más de venir que utilizar el siguiente código en
-(void)viewDidAppear:(BOOL)animated
métodoTiene que establecer windowHeight Userdefaults valor después de la ventana de asignación en didFinishLauncing Método como
height
igual a 64 en lugar de 44. A continuación, la barra se extiende todo el camino hasta la parte superior como en la de Apple apps.Si usted está utilizando el Interface builder, intente esto:
En su archivo xib:
1) Seleccione la vista principal, el color de fondo a negro (o cualquier color que usted desea que la barra de estado para ser
2) asegúrese de que el fondo es un autónomo subvista posicionado como una de las mejores secundarias de nivel de la del controlador de la vista.
Mover el fondo para convertirse en un directo niño de la del controlador de vista. Compruebe la autosizing panel para estar seguro de que usted ha bloqueado todos los bordes del marco, se activan tanto la flexibilidad de los ejes, y si este es un UIImageView, establezca el modo de contenido de la Escala de llenar. Mediante programación, esto se traduce en contentMode conjunto para UIViewContentModeScaleToFill y tiene su ajuste de tamaño automático de la máscara de conjunto a (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight).
3) Ahora mover todo lo que está bloqueado a la parte de arriba – abajo por 20 pts y establecer un iOS 6/7 delta Y a -20.
Todos los de nivel superior de los niños que están encerrados en el marco superior de la autosizing panel de la necesidad de ser trasladado por 20pts y tienen su iOS 6/7 delta Y establecer a -20. (Cmd seleccionar todos aquellos, y haga clic en flecha abajo 20 veces – existe una mejor manera de que nadie?)
4) Ajustar el iOS 6/7 delta altura de todos los elementos anteriores que tenían una altura flexible.
Cualquiera de los elementos que fueron bloqueados en el marco superior e inferior y había flexible de la altura habilitado en el autosizing panel, también debe tener iOS 6/7 delta altura de 20. Que incluye los antecedentes de la vista se mencionó anteriormente. Esto puede parecer contra-intuitivo, pero debido a que el orden en que estas se aplican, es necesario. La altura del bastidor se establece primero (basado en el dispositivo), entonces los deltas son aplicados, y, finalmente, la autosizing máscaras se aplican basa en el desplazamiento de las posiciones de todos los marcos secundarios – piensa un poco, tiene sentido.
5) Finalmente, los elementos que fueron bloqueados en la parte inferior del marco, pero no el cuadro de arriba no necesitan de deltas en todo.
Que le dará la idénticos barra de estado en iOS7 y iOS6.
Por otro lado, si usted quiere iOS7 estilo, mientras que el mantenimiento iOS6 compatibilidad, a continuación, establezca el delta Y /delta valores de altura a 0 para el fondo de la vista.
Ver más iOS7 migración info leer el post completo: http://uncompiled.blogspot.com/2013/09/legacy-compatible-offsets-in-ios7.html
Mi solución fue añadir un
UIView
con altura de 20 puntos en la parte superior de la ventana cuando en iOS 7.A continuación, he creado un método en mi clase AppDelegate para mostrar/ocultar el «sólido» de la barra de estado de fondo. En
application:didFinishLaunchingWithOptions:
:A continuación, he creado un método para fade in/out de la barra de estado negra de fondo:
Todo lo que tengo que hacer ahora es llamada
[appDelegate showSolidStatusBar:YES]
cuando sea necesario.Esto puede ser abrumador problema si usted utiliza el diseño Automático porque no se puede manipular directamente los marcos más. Hay una solución simple, sin demasiado trabajo.
Terminé de escribir un método de utilidad en una Clase de Utilidad y la llamada de todos a la vista de los controladores de la
viewDidLayoutSubviews
Método.Anular su
viewDidLayoutSubviews
método en el controlador de vista, donde desea que la barra de estado. Se obtendrá a través de la carga de diseño Automático.La manera más fácil de hacerlo es instalando un mayor SDK para su nuevo Xcode.
Cómo instalar mayores SDK para el nuevo Xcode?
U puede conseguir el SDK de iOS 6.1 de http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html o de la descarga de los mayores Xcode y consiguiendo que el SDK de sus contenidos
Descomprimir y pegar esta carpeta /Aplicaciones/Xcode.app/Contents/Desarrollador/Plataformas/iPhoneOS.plataforma/Desarrollador/SDKs
Reiniciar el xcode.
Espero que sea de ayuda para usted. Funcionó para mí =)
Como el uso de
presentViewController:animated:completion:
mal elwindow.rootViewController.view
, tenía que encontrar un enfoque diferente a este problema. Finalmente llegué a trabajar con los modales y las rotaciones por subclases de la UIView de mi rootViewController..h
.m
Ahora tiene una fuerte solución para iOS7 animaciones.
Estoy tarde para esta Respuesta, pero solo quiero compartir lo que yo hice, que es básicamente
la solución más fácil
Primera de todas-> Ir a su
info.plist
Archivo y agregar de la Barra de Estado Estilo->Transparente Negro Estilo(Alfa de 0.5)Ahora ,aquí Va:-
Añadir este código en el AppDelegate.m
Mi solución muy simple (suponiendo que sólo tienen orientación vertical soportado) es redefinir la ventana de la aplicación de los límites para las versiones de iOS por debajo de 7, en Aplicación delegado método didFinishLaunchingWithOptions:
Puede ocultar la barra de estado todos juntos. Por lo que su aplicación será a pantalla completa. Creo que es el mejor que usted conseguirá.
UIStatusBarStyleNone
o establecer en la configuración del destino.Pasos Para Ocultar la barra de estado de iOS 7:
1.Vaya a su solicitud de información.plist archivo.
2.Y Establecer, a la Vista basada en el controlador de la barra de estado apariencia : Boolean NO
Esperanza he resuelto la barra de estado de la cuestión…..
A fin de continuar trabajando con setStatusBarHidden: yo uso esta categoría:
Que he encontrado aquí es las mejores alternativas y la solución para esta barra de navegación problema en iOS7!!
http://www.appcoda.com/customize-navigation-status-bar-ios-7/
Espero que aclarar nuestras dudas y preocupaciones.
Esto podría ser demasiado tarde para compartir, pero tengo algo que aportar, que podría ayudar a alguien, yo estaba tratando de sub-clase de la UINavigationBar y quería hacer que se vea como ios 6 con el negro de la barra de estado y barra de estado de texto en blanco.
Aquí es lo que he encontrado de trabajo para que
Que hizo que mi barra de estado de fondo negro, texto de barra de estado en blanco y la barra de navegación de color blanco.
iOS 9.3, XCode 7.3.1