Ocultar UITabBar?

No meu aplicativo eu tenho uma barra de abas. E em algumas visões eu também tenho uma barra de ferramentas. Então, quando eu chego àquelas visões com uma barra de ferramentas, ela fica feia – duas barras na parte inferior da visão. Eu pensei que seria a melhor solução para ocultar uma barra de abas ao entrar nessas visões específicas. Mas eu simplesmente não consegui descobrir como fazer isso de uma maneira correta. Eu tentei definir a propriedade oculta tabBar do UITabBarController para YES, mas não funcionou. E eu também tentei fazer o seguinte em qualquer que seja a visão que eu sou:

self.hidesBottomBarWhenPushed = YES; 

Mas não funcionou tão bem.

Qual é a solução certa para esta situação? Eu não quero ter 2 bares em qualquer ponto de vista.

Obrigado.

Você tem que usar set a propriedade hidesBottomBarWhenPushed para YES no controlador que você está empurrando e NÃO para o UITabBarController.

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

Ou você pode definir a propriedade quando inicializar o controlador que deseja enviar.

O construtor de interface possui checkbox de seleção para o controlador de visualização incorporado na barra de guias – oculta a barra inferior no envio. Em casos fáceis, não há necessidade de fazer isso através de código agora.

Para @Micah

Esconda a barra inferior ao apertar.

Não use essa solução!

 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; } 

Fonte

Eu também lutei com isso por um tempo. Ocultar a barra de guias é um passo na direção certa, mas deixa um retângulo preto para trás. O truque é resize a camada que suporta a visualização do UIViewController.

Eu escrevi uma pequena demonstração aqui com uma solução:

https://github.com/tciuro/FullScreenWithTabBar

Eu espero que isso ajude!