2012-01-02 12 views
18

Moja aplikacja jest aplikacją z zakładkami i ma kilka kontrolerów w ramach tabBarController. Jeden kontroler to navigationController, a jego głównym widokiem jest widok tabeli. Po kliknięciu wiersza widoku tabeli zostanie wyświetlony inny widok. Pytanie jest więc takie, że kiedy widok jest wciśnięty, jak mogę ukryć tabBar na dole? Poza tym również chcę dodać kolejny tabBar do widoku pushed, więc muszę przydzielić UITabBar lub UITabBarController? Lub jest inny sposób? Dziękuję Ci!Jak ukryć tabBar po naciśnięciu klawisza?

Odpowiedz

48

użycie tego methood w klasie UIViewController gdzie chcesz ukryć TabBarController

-(BOOL)hidesBottomBarWhenPushed 
{ 
    return YES; 
} 

Aktualizacja

Jak sugeruje @Yuchen Zhong w swojej odpowiedzi, ta opcja jest już dostępna w serii ujęć samo.

enter image description here

+1

Dzięki! Użyłem tej metody, ale nadal nie działa. Użyłem również "myViewController.tabBarController.hidesBottomBarWhenPushe = YES", i to też nie działało. Jestem zdezorientowany. Czy muszę zmienić swoją strukturę, czy istnieją lepsze sposoby? Dziękuję Ci! – wjldxt

+1

Mam podobną aplikację TabBar z NavigationController jako jej pierwszy kontroler, ale w navigationController dodałem tylko tableView, a następnie push inny widok w didSelectRow metood widoku tabeli. czy wziąłeś tableVeiwController zamiast prostej tableView .. ?? byłoby pomocne, jeśli wkleisz część kodu tutaj – Bonnie

+0

Dziękujemy! Zrobiłem to w końcu. To moja wina, że ​​umieściłem navigationController w viewController. Kiedy używam navigationController bezpośrednio, to się udało. Dziękuję Ci bardzo! – wjldxt

8

Set UIViewController.hidesBottomBarWhenPushed = Tak, jeśli chcesz ukryć pasek kartę.

... 
nextViewController.hidesBottomBarWhenPushed = YES; 
... 
+0

Dziękuję @ Tuoxie007 – Kakashi

+0

Dzięki temu zadziałało. – Chandni

5

Czasami metoda hidesBottomBarWhenPushed ukrywa dolny pasek z wzburzony animacji.

Zamiast tego ukrywa zakładkę w viewDidLoad z

self.tabBarController.tabBar.hidden = YES; 

i przywrócić swoją obecność w viewWillDisappear

self.tabBarController.tabBar.hidden = NO; 
+0

niezbyt, jak zakładasz w tym VC, że inny VC na stosie chce tabbar - również 'viewDidLoad' jest niewłaściwą lokalizacją, ponieważ może być wywołana, nawet jeśli ten VC jeszcze się nie pojawia, również' self.tabBarController' może być 'nil' – fabb

12

Można to zrobić w serii ujęć teraz:

  1. Wybierz UIViewController w Twoim scenopisie
  2. Zaznacz pole wyboru Ukryj dolnym pasku na push

enter image description here

Powiązane problemy