[英]Disable tap on current Tab (UITabBarController) iPhone App
目前,点击同一个选项卡(用户正在工作的选项卡),应用程序将移动到该选项卡的第一页。
我想禁用用户当前正在使用的选项卡上的点击事件。
任何提示?
您尝试过tabBarController:shouldSelectViewController:
委托方法吗? 我希望这对你有帮助。
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
id currentViewController = tabBarController.selectedViewController;
return (viewController != currentViewController);
}
如果标签栏 controller 的所有视图控制器都是UINavigationControllers
,你应该这样做。
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
id nextVC = [(UINavigationController *)viewController topViewController];
id currentVC = [(UINavigationController *)tabBarController.selectedViewController topViewController];
return (nextVC != currentVC);
}
对于 Swift 4,委托方法如下所示:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
return viewController != tabBarController.selectedViewController
}
像下面这样使用它会起作用
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
if(self.tabBarController.selectedIndex==[[self.tabBarController viewControllers] indexOfObject:viewController])
return NO;
else
return YES;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.