Pregunta

Estoy tratando de construir una aplicación para iPhone que tiene dos subvistas en la ventana principal. Cada vista tiene su propia subclase UIViewController asociada a ella. Asimismo, dentro de la ejecución de cada controlador, he añadido el siguiente método:

-(BOOL)shouldAutorotateToInterfaceOrientation:
 (UIInterfaceOrientation)interfaceOrientation {
    return YES;
   }

Por lo tanto, yo esperaría tanto de las vistas a responder a los cambios de orientación. Sin embargo, éste no es el caso. Sólo la primero vista añade a la ventana principal de la aplicación responde a la orientación. (. Si intercambiar el orden se añaden los puntos de vista, entonces sólo la otra vista responde En otras palabras, ya sea trabajará -. Pero sólo uno a la vez)

¿Por qué es esto? ¿No es posible manejar los cambios de orientación de más de un punto de vista?

Gracias!

EDIT: Alguien más tenía esta pregunta, así que estoy copiando mi solución aquí:

yo era capaz de hacer frente a este problema proporcionando una vista raíz y un controlador de vista raíz con el método "shouldAutoRotate ..." y añadiendo mis otras vistas como subvistas a la vista raíz. Los subvistas heredan el comportamiento auto-rotación, y sus controladores de vista asociados no deberían necesitar para alterar "shouldAutoRotate ..."

¿Fue útil?

Solución 2

Finalmente va a publicar mi solución aquí:

Básicamente, todo se redujo a tener una "raíz" UIViewController. En esto, no tengo el método:

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
        return YES;
}

También añadí los puntos de vista que quería auto-rotación como subvistas a esta raíz de UIViewContoller UIView. Estos subvistas también tienen controladores de vista, pero lo hacen no shouldAutorotateToInterfaceOrientation anulación. De hecho, la adición de este método para los controladores de vista parece no tener efecto alguno. Sólo shouldAutorotateToInterfaceOrientation la raíz del controlador de vista parece funcionar y todos subvistas girará correctamente.

Otros consejos

Es necesario reemplazar el método shouldAutorotateToInterfaceOrientation en los tres controladores que tenga.

se puede tratar de poner en práctica este método en la clase, que vista contiene ambos puntos de vista de su ViewController

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top