La aplicación iPad agrega margen cuando se abre en el paisaje izquierdo, no en el paisaje correcto

Estoy experimentando un error de layout muy extraño con una aplicación de iPad de paisaje.

La aplicación se inicia y funciona perfectamente cuando se inicia en orientación horizontal. Sin embargo, cuando se inicia en landscape-left, se agrega un margen de 20px a la parte superior de la vista principal.

El layout de esta aplicación tiene una barra de título en la parte superior y una barra de navigation en la parte inferior (ambos son solo UIViews con un par de UILabels / UIButtons). Cuando inicie la aplicación en el modo buggy landscape-left y cambie a landscape-right, las barras superior e inferior se moverán 20px por encima donde se supone que deben estar posicionadas, es decir, la barra superior se coloca debajo de la barra de estado y la La barra inferior está flotando 20px por encima de la parte inferior del marco.

De hecho, es realmente muy extraño. Como dije, funciona perfectamente si lo abre en el paisaje.

Alguien tiene alguna idea? ¿Has visto este error?

Estoy usando iOS SDK 6.1 y Xcode 4.6

Editar [más detalles]

Algunas pistas posibles de algunos loggings que agregué: la vista principal tiene un marco de (0,0,1024,748), mientras que una llamada a [[UIScreen mainScreen] applicationFrame] devuelve una ttwig de (20,0,748,1024), que es retrato Ciertamente curioso, pero no necesariamente explica la inconsistencia entre los estados de lanzamiento: los loggings son idénticos entre el estado de error y el modo funcional.

Editar [la ttwig se espesa]

Así que he revisado todos los frameworks de vista y he creado un error reproducible.

Hay un modo de presentación de diapositivas a pantalla completa dentro de la aplicación, en el que la barra de estado está oculta. Puedo rotar el error de intervalo de 20 píxeles cuando la aplicación gira en este modo de pantalla completa.

Entonces el process es:

-App funciona normalmente, gira bien -Introduzca el progtwig de pantalla completa, aparece bien -Rotate en pantalla completa, el layout cambia de 20px -Cerrar presentación de diapositivas, el layout permanece desplazado -En la primera rotation, el layout vuelve a la normalidad

Cómo llegar … ¿hay algo similar a setWantsFullScreenLayout al que necesito llamar aquí?

20 píxeles es la altura de la barra de estado, un desplazamiento de 20 píxeles en relación con la rotation casi siempre tiene algo que ver con el marco de su controller de vista (raíz). Intente configurar el marco de vista del controller de vista raíz para tener un origen de 0,0 .