Tengo una aplicación de iPhone Estoy actualizando a iOS 6 que tiene problemas de rotación. Tengo un UITabBarController
con 16 UINavigationCotrollers
. La mayoría de las subvistas pueden funcionar en vertical u horizontal, pero algunas solo son retratos. Con iOS 6 las cosas están girando cuando no deberían.iOS 6 UITabBarController orientación compatible con el controlador de UINavigation actual
Me trataron como subclase la tabBarController para devolver el supportedInterfaceOrienations
de viewController seleccionada la corriente de navigationController:
- (NSUInteger)supportedInterfaceOrientations{
UINavigationController *navController = (UINavigationController *)self.selectedViewController;
return [navController.visibleViewController supportedInterfaceOrientations];
}
Esto me tiene más cerca. El controlador de vista no girará fuera de posición cuando esté visible, pero si estoy en horizontal y cambie de pestaña, la nueva pestaña estará en horizontal incluso si no es compatible.
Idealmente, la aplicación solo estará en la orientación compatible del controlador de vista visible actual. ¿Algunas ideas?
Esto casi me funciona. El problema es si ya estoy en el paisaje cuando cambio las pestañas a un retrato a la vista y todavía está en el paisaje. El retrato giratorio lo arregla y no girará de nuevo al paisaje, pero aún necesito que esté en retrato cuando se carga por primera vez. – Ryan
No estoy seguro de qué es exactamente lo que debe hacer para rotarlo, pero apostaría a que lo hace en - (void) viewWillLayoutSubviews. Puede que no esté exactamente en lo cierto con ese nombre de método de memoria. Mis propios puntos de vista, donde utilicé este código, cambian completamente al girar y utilizo ese método para reconfigurarlos de nuevo al modo vertical. También puede probar algo en -viewWillDisappear. Tal vez [self.view setNeedsDisplay]. No estoy en Xcode por el momento, así que estas son solo ideas que exploraría en tu caso. –
¡Agradable! ¡Funciona de maravilla! – Dennso