2

我想为 mya 应用程序构建一个自定义标签栏,但我有一个小问题:内置的 tabBar 支持hidesBottomBarWhenPushed. 有没有办法告诉我的应用我CustomTabBar是底栏?这就是我想要做的(相同的 UINavController)

                              +---------+        +---------+
                              |---------|        |---------| 
                              |         |        |         |
                              |  [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)

有没有办法做到这一点?提前致谢。

4

1 回答 1

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;
    }
}

此外,我需要知道何时再次显示标签栏的自定义图像。所以我检查添加到 tabBar.viewcontrollers 的视图控制器的类

希望这可以帮助。

于 2012-08-28T10:27:31.600 回答