1. 程式人生 > >iOS 多個tabBar之間跳轉的問題

iOS 多個tabBar之間跳轉的問題

最近在忙一款應用,裡面有多個tabBar,因為以前只接觸過單個tabBar的程式,沒遇見過這樣的需求,所以說也是各種查資料,各種試驗,今天終於弄出來了,可能我的方法有點初級,但是我還是想發出來和大家分享一下。不多說,上程式碼~

首先,因為存在tabBar,所以他們之間的點選肯定會存在衝突,尤其是首頁的tabBar,因為他是最底層的檢視。那麼,從主頁的tabBar跳轉到子頁面的tabBar的時候,就需要把主頁的tabBar和navigation隱藏起來,這樣才不會發生衝突。隱藏的方法在網上有很多,但是大部分都是這樣的

self.tabBarController.hidesBottomBarWhenPushed

= YES;

self.navigationController.hidesBottomBarWhenPushed= YES;

後來我發現這種方法是不合理地,存在很多問題,所以我建議大家使用這種方法

[self.navigationController.navigationBar setHidden:NO];

    [self.tabBarController.tabBar setHidden:NO];

在跳轉的方法中寫上去,就會隱藏掉主頁的tabBar

但是還不夠,因為咱們隱藏掉了navigation,所以不能pus回來,只能採取pop的方法

- (void)Click:(UIButton *)button

{

    [self.tabBarController.navigationController popToRootViewControllerAnimated:YES];

}

但是還有一個問題,因為咱們是pop回去的,所以咱們是獲取不到主頁的tabBar的,如果不作處理,那麼,當我們返回到主頁之後,navigation和tabBar就不會顯示,這裡需要我們在主頁中加上一個方法

- (void) viewWillAppear:(BOOL)animated

{

    [self.navigationController.navigationBar setHidden:NO];

    [self.tabBarController.tabBar setHidden:NO];

}

加上這個方法之後,就可以正常的進行tabBar之間的跳轉了,當然,以為是主頁的tabBar,所以相對來說複雜一些,子頁面之間的tabBar跳轉沒有這麼麻煩,有很多方法可以實現,在這裡就不多說了~