2012-07-18 22 views
7

¿Alguien que está probando el último iOS 6 beta (versión 2 o 3) tiene la misma experiencia de rotación automática que no funciona?IOS 6 rotación de pantalla sin utilizar el guión gráfico

No uso del guión, pero el control de navegación pura:

self.navController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
[self.window addSubview:navController.view]; 

Y tener:

- (BOOL)shouldAutorotateToInterfaceOrientation: ](UIInterfaceOrientation)interfaceOrientation 
{ 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} else { 
    return YES; 
} 
} 

- (NSUInteger)supportedInterfaceOrientations{ 
return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

PERO IOS no tiene espouse en absoluto, funciona bien con todos los IOS anteriores sobre 3GS/4S y Simulador 4.3.5.0.5.1, pero iOS 6 parece fallar

Respuesta

0

La solución es que: Desde mi aplicación está tratando de apoyar a 4.3+, tengo que usar el controlador de navegación para hacer cada interruptor de vista.

por ios6 parece delegados en el controlador de navegación, tengo que definir mi propio controlador de navegación y configurar condiciones y funciones para cambiar su comportamiento de rotación.

Cuando cargo una vista, luego hago ([self.navigationCOntroller setEnableLandscape: (BOOL) false]). de esa forma tienes un controlador completo de tu controlador de navegación.

NOTA: Intenté anular los métodos del controlador de navegación, pero parece que me ignoran. (Esto solo sucede con iOS 6.0 también), aún no tiene la prueba 6.1, por lo que no estoy seguro de si se solucionó (lo que me avisa si lo hace)

10

La autorotación está cambiando en iOS 6. En iOS 6, el método shouldAutorotateToInterfaceOrientation: de UIViewController está en desuso. En su lugar, debe usar los métodos supportedInterfaceOrientations y shouldAutorotate.

Read more here.

+0

¿Cuándo se llama a la función shouldAutorotate? Nunca parece ser necesario para mí cuando gire la pantalla ... ¿O tal vez este es un problema con el simulador? – shim

+0

Consulte mi pregunta aquí http://stackoverflow.com/questions/12640870/ios-6-force-device-orientation-to-landscape –

7

en lugar de [self.window addSubview:navController.view];

inserción self.window.rootViewController = navController;

+0

Para aumentar la calidad de su publicación, por favor incluya cómo y por qué su respuesta resolverá el problema . –

+1

Acabas de salvarme la vida. Intenté todo lo demás durante las últimas 3 horas. He recibido las devoluciones de llamada, pero iOS ignoró todo lo que puse allí. ¡Gracias, gracias, gracias! – gilm

+0

Esto funciona cuando se compila en iOS6 sdk en iOS, pero no funciona para mí cuando se compila en iOS6 sdk se ejecuta en iOS5 os! ¿Has intentado ver cómo funciona en iOS5? – Koen

Cuestiones relacionadas