通常的界面顯示需求:在主頁面是顯示 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;
}
複製代碼