Ocultar una UITabBar cuando cambie la orientación
-
10-07-2019 - |
Pregunta
Tengo una pregunta bastante simple pero la respuesta no es tan fácil.
Quiero ocultar una UITabBar cuando cambie mi orientación.
Miré de 2 maneras:
Forma de marco
myAppDelegate.tabBarController.tabBar.frame = CGRectMake(<<bottomOfScreen>>);
Funciona bien pero tengo un área en blanco, así que intenté jugar con tabBarController.view.frame et myViewController.view.frame pero no obtuve ningún buen resultado.
Manera del controlador de navegación
myOtherVC.hideTabBarWhenPushed = YES;
[self.navigationController pushViewController:myOtherVC animated:NO];
Funciona pero no es una buena solución para mi aplicación
Update:
[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é la debería autorizar y siempre devuelve SÍ)
¿Cómo puedo ocultar mi tabBar y hacer que la vista actual ocupe su espacio?
Gracias
Solución
Puede usar la solución actual combinada con:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
para detectar la rotación. (Creo que combina esto con view.transform = CGAffineTransformMakeRotation para que gire ...?)
Otros consejos
Dos formas en las que creo que puedes hacer esto fácilmente serían:
- para volver a cargar los objetos en el controlador tabBar, con hidesBottomBarWhenPushed establecido en YES para los viewControllers que desea ocultar.
- La otra opción sería simplemente hacer que su vista sea la única vista de la ventana cuando se gira el teléfono y luego volver a colocar la pestañaBarController.view en la ventana cuando el teléfono se gira de nuevo
Espero que esto ayude