【问题标题】:Disable tab bar navigating to root view禁用导航到根视图的选项卡栏
【发布时间】:2011-01-04 15:10:12
【问题描述】:

我有一个基于标签栏的应用程序,每个标签栏项目都有导航。 当我导航到任何选项卡栏项目上的另一个视图并单击选项卡栏项目时,将调用该选项卡栏项目上的根视图控制器。 它就像 PopToRootView 。 我们可以禁用这种情况吗?

【问题讨论】:

    标签: iphone uinavigationcontroller uitabbarcontroller


    【解决方案1】:

    虽然他们说你不应该继承 UINavigationController,但你可以通过创建 UINavigationController 的子类并覆盖 - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 方法来实现你想要的。

    这样做(而不是调用超级 popToRootViewController)将防止视图控制器在您单击选项卡栏项时弹出。它可能会以某种方式让您遇到一些问题,但希望它对您有用。

    【讨论】:

    • 你能告诉我 - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 是什么意思吗?在动画参数中作为“否”传递。
    • @mjdth 你知道麻烦不是“应用程序被苹果拒绝”吗?否则它就像魅力一样。感谢您的提示。
    【解决方案2】:

    是的,您可以通过在视图控制器上实现 UITabBarControllerDelegate 方法来禁用自动 popToRootViewController

    - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
        if(self.navigationController == viewController) {
            return NO;
        }
        return YES;
    }
    

    感谢:Disable action - user taps on tabbar item to go to root view controller

    【讨论】:

      【解决方案3】:
      1. 在头文件中包含 UITabBarControllerDelegate。
      2. 试试这个:

        - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
          {
              if(bool_youDontWantPopToRootView)
                   return (tabBarController.selectedViewController != viewController);
              return YES;
          }
        

      对于 bool_youDontWantPopToRootView,您可以在希望它表现得像默认行为时向其中添加条件。

      【讨论】:

        【解决方案4】:

        - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 当您在动画参数中传递“否”时,您将被定向到没有任何动画的根视图

        当您点击任何标签栏时,您不需要使用此方法,这是导航控制器的默认行为,它维护自己的 VC 堆栈

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-14
          相关资源
          最近更新 更多