2010-08-26 15 views
6

Mi aplicación utiliza 2 ventanas UI. El primero que se muestra tiene un controlador TabBar con ViewControllers que solo gira a orientaciones verticales. Hasta aquí todo funciona bien.Problema de rotación de Windows múltiple - iPhone/iPad

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

En la otra ventana tengo un UIViewController que gira en todas las orientaciones.

El problema es que cuando muestro la segunda ventana

[secondWindow makeKeyAndVisible]; 

y luego regresar a la primera

[firstWindow makeKeyAndVisible]; 

La barra de estado gira en todas las direcciones y la shouldAutorotateToInterfaceOrientation evento no se dispara. ¿Cómo puedo resolver el problema?

Respuesta

4

Está bien tener varias UIWindows en una aplicación, pero la advertencia aquí es que el código de Apple parece comprobar a través de cada ventana UI que tienes y ver si el controlador de vista superior permite una cierta rotación. Si alguna de esas ventanas permite una rotación, su barra de estado rotará independientemente de si la ventana de UI está en primer plano o es visible.

En mi propia aplicación oculto la ventana UI que no estoy usando, y agregué una verificación isHidden en los controles UIView correspondientes para no permitir la rotación si la ventana está actualmente oculta.

1

Está bien tener varias UIWindows en una aplicación, pero la advertencia aquí es que el código de Apple parece verificar a través de cada ventana UI que tienes y ver si el controlador de vista superior permite una cierta rotación.

Por la respuesta, hice muchos testículos y llegué a la conclusión de que la rotación de la barra de estado depende del controlador de vista superior de cada ventana.

Cuestiones relacionadas