IOS 6 fuerza la orientación del dispositivo al paisaje.

Di una aplicación con, por ejemplo, 10 controladores de vista. Yo uso el controlador de navegación para cargar / descargarlos.

Todos menos uno están en modo retrato. Supongamos que el 7º VC está en paisaje. Necesito que se presente en el paisaje cuando se carga.

Por favor, sugiera una manera de forzar la orientación de vertical a horizontal en IOS 6 (y también será bueno trabajar en iOS 5).

Así es como lo estaba haciendo.ANTES DE IOS 6:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    UIViewController *c = [[[UIViewController alloc]init] autorelease];
    [self presentModalViewController:c animated:NO];
    [self dismissModalViewControllerAnimated:NO];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

Presentar y descartar un VC modal obligaba a la aplicación a revisar su orientación, por lo queshouldAutorotateToInterfaceOrientation estaba siendo llamado.

Lo que he probado en iOS 6:

- (BOOL)shouldAutorotate{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
    return UIInterfaceOrientationLandscapeLeft;
}

En carga, el controlador se mantiene en vertical. Después de rotar el dispositivo, la orientación cambia bien. Pero necesito hacer que el controlador gire automáticamente a horizontal en carga, por lo que el usuario tendrá que girar el dispositivo para ver los datos correctamente.

Otro problema: después de girar el dispositivo de nuevo a retrato, la orientación va a retrato, aunque he especificado ensupportedInterfaceOrientations solamenteUIInterfaceOrientationMaskLandscape. ¿Por qué sucede?

También,NINGUNA de los 3 métodos anteriores se están llamando.

Algunos datos (útiles):

En mi archivo plist especifiqué 3 orientaciones, todas al revés.El proyecto se inició en Xcode 4.3 IOS 5. Todas las clases, incluyendo xibs, fueron creadas antes de Xcode 4.5 IOS 6, ahora uso la última versión.En el archivo plist, la barra de estado se establece en visible.En el archivo xib (el que quiero que esté en horizontal) la barra de estado es "Ninguna", la orientación está configurada en horizontal.

Cualquier ayuda es apreciada. Gracias.

Respuestas a la pregunta(12)

Su respuesta a la pregunta