rotar quiero que plus pantalla gire girar gira iphone cocoa-touch rotation

quiero - ¿Cómo puedo detectar una rotación en el iPhone sin que el dispositivo se autorrotee?



rotar pantalla iphone 6 (3)

Alguien sabe cómo hacer esto?

Pensé esto:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; } - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { } - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { } - (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { } - (void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { } - (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration { }

puede evitar que el dispositivo gire (anulando todos los métodos de rotación de mi UIViewController y no llamando a la superclase) pero me temo que no es el UIViewController el que realmente realiza la rotación.

Mi UIViewController está en un UINavigationController.

¿Alguien tiene alguna idea?

Saludos, Nick.


En una nota al margen se solía llamar a AutoRotateToInterfaceOrientation en el momento de la rotación en 2.x, pero en 3.0 es mucho menos consistente. La notificación mencionada en la otra publicación es el camino a seguir para una indicación confiable de la rotación.


Estás devolviendo YES desde shouldAutorotateToInterfaceOrientation: que sospecho que no quisiste hacer. Ese es el único método que debe implementar para evitar que el dispositivo gire.

En cuanto a obtener la orientación actual del dispositivo, puede usar la [[UIDevice currentDevice] orientation] .


Puede registrarse para la notificación UIDeviceOrientationDidChangeNotification (de UIDevice.h ) y luego, cuando le interesen los cambios de orientación, llame a este método:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

Cuando ya no le importen los cambios de orientación, llame a este método:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

La notificación se enviará cuando corresponda, y puede verificar [UIDevice currentDevice].orientation para averiguar cuál es la orientación actual.