iOS 隱藏&顯示tabBar

一般的界面顯示需求:在主頁面是顯示tabBar的,在所有的子頁面隱藏tanBar,做法很簡單

當push到一個新的頁面時隱藏tabBar
viewController.hidesBottomBarWhenPushed = YES;

但是,需求是這樣的:

主頁是顯示tabBar的,進入第二個頁面,隱藏tabBar,再進入第三個頁面,顯示tabBar。
廢話不多說了,看代碼

// 強制顯示tabbar
NSArray *views = self.tabBarController.view.subviews;
UIView *contentView = [views objectAtIndex:0];
contentView.height -= 49;
self.tabBarController.tabBar.hidden = NO;

僅僅這樣寫的話,會出現問題的,(如果不做處理的話,從第三個頁面進入到第四個頁面,將不會隱藏tabBar)

比較完善的做法是這樣的

雖然會在使用右滑手勢返回pop時,界面有些不太雅觀,但還是可以接受的??

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

     // 強制顯示tabbar
     NSArray *views = self.tabBarController.view.subviews;
     UIView *contentView = [views objectAtIndex:0];
     contentView.height -= 49;
     self.tabBarController.tabBar.hidden = NO;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    
    // 強制隱藏tabbar
    NSArray *views = self.tabBarController.view.subviews;
    UIView *contentView = [views objectAtIndex:0];
    contentView.height += 49;
    self.tabBarController.tabBar.hidden = YES;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,252評論 4 61
  • UICollectionViewFlowLayout *layout = ({ UICollectionViewF...
    Hello_World2017閱讀 220評論 0 0
  • 一周里最放松的一天 上圖:熱身前已經準備好的裝備 上圖:我跟寶馬帥哥一組,輸的一敗涂地,眼睛都在看帥哥沒看到球 上...
    睿騁閱讀 336評論 0 0
  • 周六帶小侄女去玩,晚上8點多,在回來的公交上發生了一件事: 有3個人,從我上車后,他們一直站在后面位置聊天,聲音很...
    樓上小花閱讀 629評論 4 8