当用户想要选择某个UITabBar项目时,我想首先检查他是否可以选择它。如果他不能,那就显示警报。
当用户选择某个项目时会引发一个委托方法,但在禁用某个项目时该方法不起作用。
实现这一目标的最佳方法是什么?
感谢。
答案 0 :(得分:1)
这不是很好的UI设计实践。如果某个按钮被禁用,则它不应该响应用户交互。如果它没有被禁用,它应该做一些事情。只有在没有禁用按钮显示错误/警告而不是执行所需操作的唯一情况是,只能在最后时刻确定无法执行操作。
答案 1 :(得分:0)
为什么按钮被禁用?您是否可以检查他们是否每次都能访问该按钮而不禁用该按钮?
答案 2 :(得分:0)
您需要使用UITabBarControllerDelegate中的委托方法:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
在该方法中,通过查看UITabBarController的selectedIndex,检查用户尝试选择的内容。或者,您可以获取对UITabBar本身的引用并检查其属性:
UITabBar* tabBar = [tabBarController.view viewWithKindOfClass:[UITabBar class]];
如果您不希望选项卡可选,请触发警报并指定一个整数tabBarController.selectedIndex以将其从此选项卡中更改。
警告:正如上面的海报所示,这不是与其他iPhone应用程序一致的UI设计实践。