Nascondi UITabBar?

Nella mia app ho una barra delle linguette. E in alcuni punti di vista ho anche una barra degli strumenti. Quindi quando arrivo a quelle viste con una barra degli strumenti sembra brutto – due barre nella parte inferiore della vista. Ho pensato che sarebbe stata la soluzione migliore per hide una barra delle tabs quando si inserivano quelle viste particolari. Ma non riuscivo a capire come farlo nel modo giusto. Ho provato a impostare la proprietà nascosta di tabBar di UITabBarController su YES, ma non ha funzionato. E ho anche cercato di fare la seguente cosa in qualunque vista io sia:

self.hidesBottomBarWhenPushed = YES; 

Ma non ha funzionato altrettanto bene.

Qual è la soluzione giusta per questa situazione? Non voglio avere 2 barre in nessuna vista.

Grazie.

Devi usare impostare la proprietà hidesBottomBarWhenPushed su SÌ sul controller che stai spingendo e NON su UITabBarController.

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

Oppure è ansible impostare la proprietà quando si inizializza per la prima volta il controller che si desidera premere.

Il generatore di interfacce ha la casella di controllo per il controller di visualizzazione incorporato nella barra delle tabs – Nasconde la barra in basso su push. In casi facili non c’è bisogno di farlo attraverso il codice ora.

Per @Micah

Nascondi la barra in basso sulla spinta.

Non usare questa soluzione!

 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

Anch’io ho faticato con questo per un po ‘. Nascondere la barra delle tabs è un passo nella giusta direzione, ma lascia un rettangolo nero dietro. Il trucco è ridimensionare il livello che supporta la vista di UIViewController.

Ho scritto una piccola demo qui con una soluzione:

https://github.com/tciuro/FullScreenWithTabBar

Spero che aiuti!