如何不让用户选择某个TabBarItem

时间:2009-05-04 19:23:09

标签: iphone cocoa-touch

当用户想要选择某个UITabBar项目时,我想首先检查他是否可以选择它。如果他不能,那就显示警报。

当用户选择某个项目时会引发一个委托方法,但在禁用某个项目时该方法不起作用。

实现这一目标的最佳方法是什么?

感谢。

3 个答案:

答案 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设计实践。