2009-06-24 8 views
7

Tengo una pregunta bastante simple pero la respuesta no es tan fácil.Ocultar una UITabBar cuando la orientación cambie

Quiero ocultar una UITabBar cuando cambie mi orientación.

miré 2 maneras:

manera marco

myAppDelegate.tabBarController.tabBar.frame = CGRectMake(<<bottomOfScreen>>); 

Funciona bien, pero tengo un área en blanco, por lo que trató de jugar con tabBarController.view.frame et myViewController.view.frame pero No obtuve ningún buen resultado.

mando de navegación Way

myOtherVC.hideTabBarWhenPushed = YES; 
[self.navigationController pushViewController:myOtherVC animated:NO]; 

Funciona, pero no es una buena solución para mi aplicación

Actualización:

[appDelegate.tabBarController.view removeFromSuperview]; 
[self.view removeFromSuperview]; [appDelegate.window addSubview:self.view]; 
self.view.frame = CGRectMake(0,0,480,320); 

funciona bien, pero no más autorotate (y por supuesto, no cambié el shouldAutorotate y siempre devuelve SÍ)


¿Cómo puedo HIDDE mi barra de pestañas y hacer la vista actual teniendo su espacio?


Gracias

+0

¿Has descubierto cómo hacerlo? Si es así, ¿puedes compartir la respuesta? –

+0

Sí, acabo de publicar la respuesta – Francescu

Respuesta

3

Usted puede utilizar la solución actual se combina con:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:@"UIDeviceOrientationDidChangeNotification" object:nil]; 

para detectar la rotación. (Creo que combinas esto con view.transform = CGAffineTransformMakeRotation para hacer que gire ...?)

0

Dos maneras creo que se puede hacer fácilmente esto sería:

  1. para recargar los objetos de nuevo en el controlador de barra de pestañas - con el hidesBottomBarWhenPushed establece en SÍ para los viewControllers quieres estar escondido
  2. La otra opción sería simplemente hacer que su opinión, el único punto de vista de la ventana cuando el teléfono se gira y luego poner el tabBarController.view de vuelta en la ventana cuando el teléfono se gira hacia atrás

Espero que esto ayude

+0

Hola, gracias por tu ayuda. Jugué con vistas: [appDelegate.tabBarController.view removeFromSuperview]; [self.view removeFromSuperview]; [appDelegate.window addSubview: self.view]; self.view.frame = CGRectMake (0,0,480,320); Funciona bien pero ya no se autorrota (y por supuesto, no cambié el shouldAutorotate y siempre devuelve SÍ) – Francescu

Cuestiones relacionadas