如何根据条件阻止标签被点击?我尝试了几件事,我可能错过了一些基础知识。
我有一个实现UITabBarController的UITabBarCustomController。在viewDidLoad中,根据条件,我将selectedIndex强制为1,这是有效的。
然而,我无法阻止用户离开此标签。我试图在另一个与我的UITabBar链接的ViewController上设置一个UITabBarControllerDelegate,我实现了- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
,最后我还尝试在我的自定义UITabBarCustomController上实现这个委托和方法。但在这两种情况下,当我点击另一个选项卡时,没有任何反应,用户可以访问该选项卡(这些方法中的NSLog不会在调试中显示)。
有什么想法?感谢。
//编辑:委托方法中的测试代码:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
NSLog(@"test");
return NO;
}
答案 0 :(得分:1)
这是阻止/阻止Tabbar项目在tabbar项目上单击
切换选项卡的方法适用于Swift 3.0
确保您已实施 UITabBarControllerDelegate 并将 UITabbarController 的 委托 设置为 自 强>
然后在控制器中覆盖此委托
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if viewController == tabBarController.viewControllers?[2] {
return false
} else {
return true
}
}