samsung rotar pantalla lite invertir grados girar gira espejo como celular iphone cocoa-touch

iphone - lite - rotar pantalla android apk



¿Cómo forzar una orientación de pantalla en controladores de vista específicos? (4)

No pude hacer que esto funcionara como quería. Debería poder establecer una orientación particular para un ViewController, pero el NavigationController no parece hacer siempre lo correcto.

Intenté rediseñar mis pantallas para que todas funcionen en cualquiera de las dos orientaciones. Eso podría ser un trabajo extra, pero se "siente" más natural, de todos modos.

Mi aplicación es bastante simple: se inicia con un controlador de vista que contiene una vista de tabla (en diseño de vista agrupada) con algunas opciones. Cuando el usuario toca una de las opciones, presiono otro controlador de vista en mi controlador de navegación.

Este segundo controlador de vista simplemente muestra un UIImageView, y el usuario puede cambiar la orientación de la pantalla en este controlador de vista entre modos de retrato / paisaje. Esto funciona bien y todo está feliz.

Sin embargo, si el usuario toca el botón "Atrás" en la barra de navegación mientras está en el modo horizontal, el diseño del primer controlador está completamente desordenado. Consulte a continuación las capturas de pantalla antes / después:

antes de http://pessoal.org/shot1.jpg después de http://pessoal.org/shot2.jpg

¿Alguna pista sobre cómo forzar al primer controlador de visualización (segunda captura de pantalla en esta publicación) a mantenerse dentro de la orientación de la pantalla de retrato?


No parece haber una manera de hacer esto usando los métodos documentados.

He archivado un error para esto: rdar: // 6399924

"No hay forma de restringir siempre un UIViewController a una orientación"

Puede verlo en un radar abierto (junto con un enlace al código de muestra para reproducir el problema) aquí: http://openradar.appspot.com/radar?id=697


Al igual que alguien en el radar abierto sugirió, una solución alternativa es deshabilitar el botón "volver" mientras está en modo no retrato:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ // don''t let user press "back" button in landscape - otherwise previous view and the rest of the application // will also be in landscape which we did not feel like testing yet self.navigationController.navigationBarHidden = (UIInterfaceOrientationPortrait != self.interfaceOrientation); }


Hay una solución para hacer eso: es usar un controlador de vista y agregar su vista a la ventana. luego en ese controlador forzarás el paisaje en el shouldAutorotate ... method. Funciona bien, pero asegúrese de que sea necesario para que su proyecto lo use, porque no es muy inteligente obligar al usuario a encender su iPhone. Por cierto, aquí hay un código de ejemplo si lo necesitas.

http://www.geckogeek.fr/iphone-forcer-le-mode-landscape-ou-portrait-en-cours-dexecution.html