2012-05-09 56 views
2

我想爲mya應用程序構建一個自定義選項卡欄,並且存在一個小問題:內置tabBar支持hidesBottomBarWhenPushed。有沒有辦法告訴我的應用程序,我的CustomTabBar是底部酒吧? 這就是我想要做的(相同UINavController)hidesBottomBarWhen推送自定義視圖

       +---------+  +---------+ 
           |---------|  |---------| 
           |   |  |   | 
           | [btn] | ---> | 2nd | 
           |   | | | view | 
           |---------| | |   | 
      there's tabbar --> | 1 | 2 | | |   | <- no tabbar 
           +---------+ | +---------+ 
              | 
           pushViewController:animated: 

CustomTabBarController的層次結構非常像原來UITabBarController的:

CustomTabBarController 
    |- UINavigationController (root: FirstViewController) <- there's a button 
    |- UINavigationController (root: SecondViewController) 

是否有acheive辦法那?提前致謝。

+0

您的自定義選項卡欄控制器是否繼承自UITabBar UIView?換句話說,你是否實現了使用內容視圖控制器API自己切換視圖的邏輯,或者你是否劫持了UITTabBar? –

+0

不,我必須自己處理所有的切換。如果它從UITabBar繼承下來,那就沒有問題了......順便說一下,我可以將自定義的UITabBar設置爲44px高嗎?如果是的話,這將是一個解決方案... – akashivskyy

回答

2

在此基礎上回答https://stackoverflow.com/a/4987542/263503,我實現了我的自定義標籤欄控制器類以下內容:

CustomTabBarController.h

@interface CustomTabBarController : UITabBarController <UINavigationControllerDelegate> 

CustomTabBarController.m

- (void)navigationController:(UINavigationController *)navigationController 
    willShowViewController:(UIViewController *)viewController 
       animated:(BOOL)animated 
{ 
    if (viewController.hidesBottomBarWhenPushed) { 
     self.tabBarImage.hidden = YES; 
    } else if ([viewController isKindOfClass:[CustomViewController class]]) { 
     self.tabBarImage.hidden = NO; 
    } 
} 

另外我需要知道wh en再次顯示標籤欄的自定義圖像。所以我檢查添加到tabBar.viewcontrollers的視圖控制器的類

希望這會有所幫助。

+0

謝謝,我會看看這個。 – akashivskyy