【问题标题】:Reclicking in a UITabBarItem在 UITabBarItem 中重新单击
【发布时间】:2011-08-22 18:44:28
【问题描述】:

有没有办法为重新单击 UITabBarItem 提供操作?当标签栏项目被重新点击时,我想回到我的应用程序的初始屏幕。我正在使用带有 UITabBar 和 UITabBarItens 的 UITabBarController。我的应用程序有一个带有向前和向后控件的视图列表。我希望 UITabBarItem 像一个主页按钮。

【问题讨论】:

  • 这对用户来说不是一个直观的操作。
  • @Evan Mulawski:这实际上是标准的 iOS 行为。
  • @jtbandes:真的吗?我从来没有见过也没有使用过这个功能。
  • @Evan Mulawski:是的。例如,尝试转到“电话”应用程序的“联系人”选项卡,然后点击姓名以向下钻取,然后再次点击“联系人”选项卡。
  • @Evan Mulawski:它回到了根目录。

标签: iphone uitabbar uitabbaritem


【解决方案1】:

如果您使用 UINaviationController,此行为会自动提供给您:当您“重新单击”一个选项卡时,它会弹出到根视图控制器。

您的另一个选择是实现 UITabBarDelegate 或 UITabBarControllerDelegate 协议并在单击选项卡时执行操作。

【讨论】:

  • 我正在使用带有 UITabBar 和 UITabBarItens 的 UITabBarController。我的应用程序有一个带有向前和向后控件的视图列表。我希望 UITabBarItem 像一个主页按钮。
  • 考虑在标签栏中使用 UINavigationController。否则,您可能必须重写一些私有方法或其他东西才能使其正常工作。
  • @flopes:实际上,我认为您可以使用委托方法来做到这一点。请参阅我的更新答案。
  • 谢谢!! UITabBarControllerDelegate 协议对我来说很好。
【解决方案2】:

它在 UINavigation 控制器实现中的默认值。如果您有 UINavigationController 并点击选项卡栏中的图标,它将弹出视图控制器,直到到达根目录,假设导航控制器是子级并且是选项卡栏项目的控制器之一。

【讨论】:

    【解决方案3】:

    你必须实现一个 UITabBarControllerDelegate

    - (void)tabBarController:(UITabBarController*)tabBarController didSelectViewController:(UIViewController*)viewController
    {
    
        if (tabBarController.selectedViewController == viewController)
        {
            tabBarController.selectedIndex =0;
        }
    }
    

    这应该可以解决问题。

    干杯 网民

    【讨论】:

    • 感谢@jtbandes 的补充回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多