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 に答える