iOS 隱藏&顯示tabBar

通常的界面顯示需求:在主頁面是顯示 tabBar 的,在全部的子頁面隱藏 tabBar,作法很簡單bash

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

可是,需求是這樣的:

主頁是顯示tabBar的,進入第二個頁面,隱藏tabBar,再進入第三個頁面,顯示tabBar。app

廢話很少說了,看代碼ide

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

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

比較完善的作法是這樣的

雖然會在使用右滑手勢返回pop時,界面有些不太雅觀,但仍是能夠接受的😄code

- (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;
}
複製代碼
相關文章
相關標籤/搜索