tab sizes icon bars bar iphone cocoa-touch

iphone - bars - tabbar icon sizes



¿Ocultar UITabBar? (4)

En mi aplicación tengo una barra de pestañas. Y en algunas vistas también tengo una barra de herramientas. Así que cuando llego a esas vistas con una barra de herramientas, se ve feo: dos barras en la parte inferior de la vista. Pensé que sería una mejor solución ocultar una barra de pestañas al ingresar esas vistas particulares. Pero simplemente no pude averiguar cómo hacerlo de una manera correcta. Intenté establecer la propiedad oculta tabBar de UITabBarController en SÍ, pero no funcionó. Y también traté de hacer lo siguiente en la vista que sea:

self.hidesBottomBarWhenPushed = YES;

Pero no funcionó tan bien.

¿Cuál es la solución correcta para esta situación? No quiero tener 2 barras en ninguna vista.

Gracias.


Debe usar la propiedad hidesBottomBarWhenPushed en YES en el controlador que está presionando y NO en el UITabBarController.

otherController.hidesBottomBarWhenPushed = YES; [navigationController pushViewController: otherController animated: TRUE];

O puede establecer la propiedad cuando inicializa por primera vez el controlador que desea insertar.


El creador de la interfaz tiene una casilla de verificación para ver el controlador integrado en la barra de pestañas: oculta la barra inferior al empujar. En casos fáciles no hay necesidad de hacerlo a través del código ahora.

Para @Micah


Yo también luché con esto por un tiempo. Ocultar la barra de pestañas es un paso en la dirección correcta, pero deja un rectángulo negro detrás. El truco es cambiar el tamaño de la capa que respalda la vista de UIViewController.

He escrito una pequeña demostración aquí con una solución:

https://github.com/tciuro/FullScreenWithTabBar

¡Espero que esto ayude!


¡No uses esta solución!

BOOL hiddenTabBar; UITabBarController *tabBarController; - (void) hideTabBar { [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.4]; for(UIView *view in tabBarController.view.subviews) { CGRect _rect = view.frame; if([view isKindOfClass:[UITabBar class]]) { if (hiddenTabBar) { _rect.origin.y = [[UIScreen mainScreen] bounds].size.height-49; [view setFrame:_rect]; } else { _rect.origin.y = [[UIScreen mainScreen] bounds].size.height; [view setFrame:_rect]; } } else { if (hiddenTabBar) { _rect.size.height = [[UIScreen mainScreen] bounds].size.height-49; [view setFrame:_rect]; } else { _rect.size.height = [[UIScreen mainScreen] bounds].size.height; [view setFrame:_rect]; } } } [UIView commitAnimations]; hiddenTabBar = !hiddenTabBar; }

Source