隱藏自定義tabbar(關於tabbar的hide屬性對於自定義無效)


背景: 最近在做一個項目中 需要在tabbar中的一個子控制器中隱藏tabbar。 我是tabbar我是自定義的XIB 視圖addsubview到tabbar上。

 首先po 一個在網上查到的解決方法:

UIWindow * window = [UIApplication sharedApplication].keyWindow;

CustomTabBar * ct =(CustomTabBar *) window.rootViewController;

ct.bgView.hidden = YES;

  原文地址:http://blog.csdn.net/zx6268476/article/details/45692141

 坑:我在跳出來的時候 tabbar 不顯示 - -

 

 

我再說我的解決思路:tabbarViewcongtroller 都是通過 push和 pop 方法進行 自控制器的跳轉的,所以我們自定義navigationcontroller,來攔截push和pop 方法。廢話不多說,上代碼

 

1.  首先自定義一個 CustomNavigationController(名字自己起)繼承與UINavigationController, CustomNavigationController.m中攔截系統的push方法,進行重寫:
 
 -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
   
    [super pushViewController:viewController animated:animated];
}
-(UIViewController *)popViewControllerAnimated:(BOOL)animated{
    return [super popViewControllerAnimated:animated];
}
 
         2.  在自定義的TabBarController.m里寫如下方法:
-(void)setHidesBottomBarWhenPushed:(BOOL)hidesBottomBarWhenPushed{
    你的自定義View.hidden = hidesBottomBarWhenPushed;
    self.tabBar.hidden = hidesBottomBarWhenPushed;
}
 
3.  在你要隱藏tabbar的界面添加如下兩個方法:
-(void)viewWillAppear:(BOOL)animated{
    self.tabBarController.hidesBottomBarWhenPushed = YES;
}
-(void)viewWillDisappear:(BOOL)animated{
    self.tabBarController.hidesBottomBarWhenPushed = NO;
}
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM