UINavigationController problemas de navegación pila en modo horizontal
-
01-10-2019 - |
Pregunta
Tengo una aplicación para iPhone que estoy convirtiendo actualmente a un universales binaria de trabajo con el iPAD. He aplicado con éxito que necesito todo en términos de distribución de manera que la funcionalidad completa del paisaje es ahora compatible con mi aplicación (modo de retrato anteriormente he usado principalmente al contenido de la pantalla).
Sin embargo, tengo un problema extraño, y sólo se produce en el modo horizontal: cuando empujo un controlador de vista en la pila, se necesita dos toques en el botón de retroceso para volver a la vista anterior ¡controlador! La primera muestra toca una vista en blanco, pero con el mismo nombre en el botón de navegación de vuelta del lado izquierdo, el segundo grifo toma la parte posterior del controlador a la vista anterior como debería.
No tengo un iPad a prueba, así que estoy confiando en el simulador. El problema no se presenta en el iPhone y no aparece si se gira de nuevo a modo de retrato.
Mi aplicación consiste en una tabBarController con los controladores de navegación cargados por su vc de:
//application delegate
- (void)applicationDidFinishLaunching:(UIApplication *)application
//....
WebHelpViewController *vc8 = [[WebHelpViewController alloc] init];
UINavigationController *nv8 = [[UINavigationController alloc] initWithRootViewController:vc8];
[self.tabBarController setViewControllers:[NSArray arrayWithObjects:nv1,nv2,nv3,nv4,nv5,nv6,nv7,nv8,nil]];
Para poner en práctica la capacidad de paisaje, la UITabBarController se anula a autorotate cuando sea necesario:
//CustomTabBarController.m
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return [[(UINavigationController *)self.selectedViewController topViewController] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
... bien funciona. Navego en nuevos puntos de vista utilizando este método
SomeViewController *vc = [[SomeViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
¿Es esto sólo un error de simulación? ¿Cómo puedo solucionar este problema?
Solución
Suena como otra ViewController
está respondiendo a:
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
Marque esta primera.