禁用选项卡栏导航到根视图

Him*_*hu 6 iphone uitabbarcontroller uinavigationcontroller

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

Lei*_*och 7

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

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

感谢:禁用操作 - 用户点击tabbar项目以转到根视图控制器


mjd*_*dth 3

尽管他们说您不应该子类化UINavigationController,但您可以通过创建子类UINavigationController并重写该- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;方法来实现您想要的目的。

这样做(并且不调用超级 popToRootViewController)将防止当您单击选项卡栏项目时弹出视图控制器。它可能会让您遇到一些问题,但希望它对您有用。