UITabBarController中的自定义默认导航级别

问题描述

| 当您在UITabBar上点击一个已选择的选项卡,并且该视图控制器是导航控制器时,该导航控制器弹出到根视图控制器。我将如何更改此行为使其弹出到与根不同的级别?     

解决方法

设置您的UITabBarController委托并执行以下操作:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    return tabBarController.selectedViewController != viewController;
}
上面的代码将防止弹出到根目录。要手动弹出另一个级别,您必须编写代码以在ѭ1中执行以下操作: 检查
viewController
是否是您感兴趣的特定导航控制器 检查导航控制器的顶视图控制器是什么,并确定要弹出的vc 使用
[navigationController popToViewController:vc animated:YES]
或其他导航控制器推入/弹出方法之一来实现所需的功能。     ,您可以使用UITabBarControllerDelegate来解决这个问题: 当视图控制器是根控制器时,请尝试返回NO,然后按或弹出所需的控制器。当您确实需要弹出到根控制器时,可能需要使用一些标志。
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController