【问题标题】:make tabbar button as unselected when clicked on the navigation bar button单击导航栏按钮时使标签栏按钮未选中
【发布时间】:2015-04-06 07:52:07
【问题描述】:

我正面临标签栏的问题,当我点击导航栏按钮时,应该取消选择标签栏按钮,我尝试但未能这样做。谁能帮我解决这个问题。

【问题讨论】:

  • 不清楚你在问什么,补充一些细节。
  • @rishi : 在一个视图中导航栏和 tabor 都在那里。第一次在标签栏中选择了一个按钮,现在我点击了导航栏按钮,现在我想取消选择标签栏按钮
  • 您能否添加一些屏幕截图来显示您的确切问题。
  • 如何放截图,这里我做不到

标签: ios ios7 ios8 uitabbarcontroller


【解决方案1】:

如果我了解您的需求,我想您想要做的就是在标签栏中完全不选择任何项目。

这样做:

[tabBar setSelectedItem:nil];

应该是你需要的。

仅当您的 tabBar 不由 UItabBarController 处理时。否则你会得到以下异常。

不允许直接修改由标签栏控制器管理的标签栏。

不幸的是,如果您阅读有关 UItabBarController 的 tabBar 属性的文档,这种行为是合乎逻辑的:UITabBarController documentation - tabBar

您永远不应尝试操作存储在此属性中的 UITabBar 对象本身。如果您尝试这样做,选项卡栏视图将引发异常。要为标签栏界面配置项目,您应该将一个或多个自定义视图控制器分配给 viewControllers 属性。标签栏从您指定的视图控制器中收集所需的标签栏项目。

通读这个页面,你会发现 UITabBarController 让你无法选择 tabBar 上的项目以外的项目(moreNavigationController UITabBarController documentation - moreNavigationController 除外)


编辑:如果您确实想保持您的 tabBar 显示,您可以通过将“未选择样式”应用于所选选项卡来欺骗用户并让他们相信该选项卡未被选中。这个问题应该为您提供所需的一切:How to change inactive icon/text color on tab bar?

【讨论】:

  • 但是我使用的是tabview控制器,那么我该如何使用[tabbar selecteditems=nil];
  • 从文档中,你不能。您所能做的就是“隐藏”它被选中的事实,方法是将项目的未选中样式应用到它的选中状态。
  • self.tabBarController.selectedIndex=2;这是可行的,但是,选择了 3 个选项卡,但我也不想选择一个,我尝试使用 nil 但选择了第一个选项卡
  • 当您执行self.tabBarController.selectedIndex=2 时选择选项卡 3 是正常的,因为索引从 0 开始,因此选择索引 0 将显示第一个选项卡,索引 1 将显示第二个选项卡,索引 2 将显示第三个标签等等。
  • 是的,我知道,但是如何解决我的问题,我不想选择任何选项卡
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 2016-05-12
  • 1970-01-01
  • 2018-04-02
  • 2019-01-11
相关资源
最近更新 更多