/ / popViewController no vuelve automáticamente a la orientación permitida: iphone, ipad, uinavigationcontroller, rotación, popviewcontroller

popViewController no se autorrota a la orientación permitida - iphone, ipad, uinavigationcontroller, rotation, popviewcontroller

Tengo dos controladores UIViewControllers, "A" y "B", donde"A" anula el valor shouldAutorotateToInterfaceOrientation para devolver YES para UIInterfaceOrientationPortrait, y "B" devuelve YES para todas las orientaciones. En mi ejemplo, "A" es el controlador de vista de navegación raíz, y luego uso pushViewController para "B". Después de eso, gire el dispositivo a la posición horizontal, lo que autorotera con éxito "B", luego hago clic en "B" (botón de retroceso o mediante popViewController) para volver a "A".

Cuando se dirige a iPhone OS 3.1.3, "A" vuelve a la orientación vertical como se esperaba. Al apuntar al iPhone OS 3.2, tengo dos efectos secundarios:

  1. "A" se muestra en el paisaje.
  2. La barra de navegación no se actualiza aunque"A" se muestra ahora. La barra de navegación aún muestra los elementos para "B". Solo después de intentar volver / abrir una vez más, la barra de navegación se animará para mostrar los elementos de "A". Si, por el contrario, intento presionar "B" de nuevo y retroceder, tengo que saltar dos veces antes de que la barra de navegación se anime para mostrar los elementos de "A". Durante estos "pops intermedios" la vista para "A" permanece visualizada.

Mientras investigaba este tema, he visto otrosLas respuestas sugieren que se realice la rotación manualmente ([UIDevice setOrientation] o mediante una transformación), sin embargo, esto no ayuda a comprender cuál es el problema, especialmente por qué se comporta de manera diferente entre los dos sistemas operativos.

Así que mi pregunta es: ¿Deben todos mis UIViewControllers en la pila UINavigationController admitir exactamente las mismas orientaciones en el futuro? Y si no, ¿hay algo que deba hacer para que se comporte como lo hizo para OS 3.1.3?

Respuestas

1 para la respuesta № 1

Parece que los sistemas operativos más nuevos requieren que todos los UIViewControllers en la pila UINavigationController soporten el mismo conjunto de orientaciones.


0 para la respuesta № 2

Tengo el mismo problema y encontré la respuesta en este enlace: Problemas de la pila de navegación de UINavigationController en modo horizontal uno de mis controladores de vista no devolvió SÍ en shouldAutorotateToInterfaceOrientation.