代码之家  ›  专栏  ›  技术社区  ›  Ilya Suzdalnitski

如何不让用户选择某个选项卡项目

  •  0
  • Ilya Suzdalnitski  · 技术社区  · 15 年前

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

    有一个委托方法在用户选择某个项时被引发,但在禁用某个项时不起作用。

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

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  1
  •   U62    15 年前

    这不是很好的UI设计实践。如果一个按钮被禁用,它就不应该对用户交互做出任何反应。如果它没有被禁用,它应该做些什么。唯一有理由使用非禁用按钮显示错误/警告而不是执行所需操作的情况是,只能在最后一刻确定该操作无法执行。

        2
  •  0
  •   Roger    15 年前

    为什么按钮被禁用?你能不能不只是检查他们是否每次都能访问这个按钮而不禁用这个按钮?

        3
  •  0
  •   Glenn Barnett    15 年前

    您需要使用来自uitabbarControllerDelegate的委托方法:

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    

    在该方法中,通过查看uitabarcontroller的selectedIndex,检查用户尝试选择的对象。或者,您可以获取对UItaBar本身的引用并检查其属性:

    UITabBar* tabBar = [tabBarController.view viewWithKindOfClass:[UITabBar class]];
    

    如果不希望选项卡可选择,则触发警报并分配一个整数tabbarcontroller.selectedIndex以将其从该选项卡中更改。

    警告:正如上面的海报所示,这不是一个与其他iPhone应用程序一致的用户界面设计实践。