Problemas de barra de estado y layout con UIImagePickerController después de la rotation

tl; dr: El layout de la interfaz de usuario está roto al girar el iPad mientras toma una foto, si la aplicación muestra una barra de estado.

Tengo una aplicación que muestra una barra de estado que debería tomar fotos a través de un UIImagePickerController .

Estoy ejecutando esto en un iPad 3, iOS 6 con Xcode 4.51

El primer problema que noté fue que si no escondía la barra de estado vía

 [[UIApplication shanetworkingApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 

antes de la llamada a

 [self presentViewController:imagePicker animated:YES completion:nil]; 

Entonces el UIImagePickerController no se mostraría correctamente en la pantalla. El espacio para la barra de estado todavía estaría reservado (pero no se muestra el time ni la batería, etc.) con el resultado de que los controles en el extremo inferior de la pantalla estarían parcialmente fuera de la pantalla.

Entonces, agregué la línea

 [[UIApplication shanetworkingApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 

antes de presentar el UIImagePickerController y se resolvió el primer problema.

Ahora viene el segundo problema (causado por la solución al primer problema). Cuando UIImagePickerController el UIImagePickerController , gire el iPad y ciérrelo (a través de "cancelar" o "usar", no importa), el controller ( imagePickerControllerDidCancel o imagePickerController:didFinishPickingMediaWithInfo: se imagePickerController:didFinishPickingMediaWithInfo: , en el que muestro nuevamente la barra de estado , vía

 [[UIApplication shanetworkingApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 

El problema es ahora que la barra de estado se muestra de hecho, pero el rest de la aplicación parece no darse count de que está en la pantalla de nuevo. (La Barra UITool que tengo en mi "MainViewController" está parcialmente oculta detrás de la barra de estado). Lo interesante es que si giro el iPad a cualquier otra orientación, todo se mostrará correctamente una vez que termine la animation.

¿Alguien puede darme consejos sobre cómo resolver este problema? (Actualmente mi mejor trabajo sería dejar la barra de estado oculta después de la primera vez que alguien tomó una foto, pero eso es un poco subóptimo). Tal vez haya una mejor solución al primer problema, o tal vez un método para resolver ambos problemas.

Más información: Después de girar el iPad hacia el paisaje mientras UIImagePickerController estaba activo, este es el marco del marco de vista de mi MainViewController: {{0, 0}, {1024, 768}} (es decir, en el caso en que exista el problema). Cuando tengo el iPad en orientación horizontal todo el time, este es el marco de vista del UIImagePickerController después de que se descarta el UIImagePickerController : {{0, 0}, {1024, 748}} (Este es el caso donde no hay problema).

Gracias de antemano por su atención y esfuerzo!

Me topé con el mismo problema en el iPhone al mostrar un selector de imágenes que toma una image de la camera. La solución que encontré fue hacer una llamada para mostrar la barra de estado cuando vuelva a aparecer la vista que apareció en el selector de image. P.ej.

 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[UIApplication shanetworkingApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; }