Tengo un UITabBarController presentado en modo vertical. En una de las pestañas, tengo un botón que muestra un UIViewController de forma modal (un simple script de guión gráfico realiza la acción).Modal View Force del controlador Orientación horizontal en iOS 6
Quiero que esta vista modal se muestre en modo Paisaje, pero no puedo hacer que gire automáticamente.
tengo esto en el controlador de vista modal
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
He añadido landscapeLeft a las orientaciones plist compatible (aunque esto también permite que el TabBar sea girado el que no quiero)
también he añadido esto a la viewDidLoad de la vista modal
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
pero simplemente no puedo conseguir que gire por sí mismo.
Gracias
EDITAR ----
Parece shouldAutoRotate ni siquiera siendo llamados!
Además, estoy tratando de detectar la orientación y este código a continuación siempre muestra 2, ¡independientemente de la orientación!
if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait) {
NSLog(@"1");
self.hostView.frame = CGRectMake(0, 60, 200, 255);
} else {
NSLog(@"2");
self.hostView.frame = CGRectMake(0, 45, 480, 255);
}
EDIT 2 ---
Mi mal. Supongo que debería haber mencionado que estaba usando iOS 6. La pantalla gira automáticamente en iOS 5. shouldAutorotateToInterfaceOrientation está en desuso, así que necesito leer sobre los nuevos métodos.
Desde mi experiencia previa con esto, no hay forma de forzar a que viewController aparezca en una orientación específica. Puede elegir si permite que la orientación cambie o no, pero no la fuerza. fue un fastidio para mí ... – KDaker
¡Eso es un poco estúpido! Tengo un gráfico que solo cabrá en Landscape. Entonces dices que Apple quiere que lo muestre mal hasta que el usuario encienda su dispositivo. Eso no suena bien, aunque no he encontrado una solución, así que puede que tengas razón. – Darren