notes apple app iphone rotation uiwindow

iphone - apple - ios 12



Problema de rotación de Windows múltiple-iPhone/iPad (2)

Está bien tener múltiples UIWindows en una aplicación, pero la advertencia aquí es que el código de Apple parece verificar a través de cada ventana UIWW 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 UIWindow 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.

Mi aplicación usa 2 UIWindows. El primero que se muestra tiene un controlador TabBar con ViewControllers que solo gira a orientaciones verticales. Hasta aquí todo funciona bien.

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

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

El problema es que cuando muestro la segunda ventana

[secondWindow makeKeyAndVisible];

Y luego regrese al primero

[firstWindow makeKeyAndVisible];

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


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

Según la respuesta, hizo muchos testículos y llegó a la conclusión de que la rotación de la barra de estado depende del controlador de vista superior de cada ventana.