iOS 7: oculta la barra de estado en un controller de vista secundaria

UIApplication.ShanetworkingApplication.SetStatusBarHidden (código MonoTouch, pero también se aplica a Obj-C) hace el trabajo para iOS 6, pero para iOS 7 debemos:

  1. Invoque SetNeedsStatusBarAppearanceUpdate () en el controller de visualización (por ejemplo, un controller de visualización que muestra una image de pantalla completa)
  2. Reemplace PrefersStatusBarHidden () en el mismo controller de vista.

Sin embargo, el controller de vista mencionado anteriormente está embedded en una barra de navigation, que también está embedded en un menu desplegable. Aunque todos los controlleres de vista embeddeds se agregan a la jerarquía con AddChildViewController() , intentar actualizar la barra de estado en un controller de vista secundaria no tiene ningún efecto.

¿Algunas ideas?


EDITAR

 Window.RootViewController (Menu) |___ ViewControllerA (Navigation Bar) |___ ViewControllerB (Actual View controller) 

Donde ViewControllerB quiere ocultar / mostrar la barra de estado

ViewControllerA debe anular childViewControllerForStatusBarHidden y devolver ViewControllerB.

 - (UIViewController *)childViewControllerForStatusBarHidden { return _viewControllerB; } 

No parece del todo lo que intentas hacer. Si simplemente desea ocultar la barra de estado en todos los controles de vista secundarios, puede establecer la propiedad UIViewControllerBasedStatusBarAppearance nueva.

… Si prefiere inhabilitar este comportamiento y establecer el estilo de la barra de estado mediante el método UIApplication statusBarStyle, agregue la key UIViewControllerBasedStatusBarAppearance al file Info.plist de la aplicación y asígnele el valor NO.

fuente: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/Bars.html#//apple_ref/doc/uid/TP40013174-CH8-SW1

La fuente es BTW una muy buena reference a todo tipo de información relacionada con el event handling UINavigationBar y UIStatusBar en iOS7.