禁用点按当前标签(UITabBarController)iPhone App

vir*_*ral 3 iphone uitabbarcontroller ios

当前,点击相同的选项卡(用户正在工作),应用程序移动到该选项卡的第一页.

我想在用户当前正在使用的选项卡上禁用点击事件.

任何提示?

Emp*_*ack 13

你尝试过tabBarController:shouldSelectViewController:委托方法吗?我希望能帮助你.

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

    id currentViewController = tabBarController.selectedViewController;
    return (viewController != currentViewController);
}
Run Code Online (Sandbox Code Playgroud)

如果标签栏控制器的所有视图控制器都是UINavigationControllers,那么你应该这样做.

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

    id nextVC = [(UINavigationController *)viewController topViewController];
    id currentVC = [(UINavigationController *)tabBarController.selectedViewController topViewController];
    return (nextVC != currentVC);
}
Run Code Online (Sandbox Code Playgroud)

对于Swift 4,委托方法如下所示:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    return viewController != tabBarController.selectedViewController
}
Run Code Online (Sandbox Code Playgroud)