【问题标题】:Swift: how to make tab view controller button not show?Swift:如何使选项卡视图控制器按钮不显示?
【发布时间】:2017-07-11 13:08:11
【问题描述】:

好的,我的所有视图控制器都由标签栏控制器管理,显然,当您在情节提要中连接控制器和 Vcs 之间的关系作为“视图控制器”时,标签栏上会出现一个按钮。然后可以通过标签栏控制器访问它们。

我的问题是我需要有一个 VC 作为视图控制器数组,但不能显示在选项卡栏上的按钮中。用户应该无法访问它,但我需要能够在代码中使用selectedIndex 切换到该 VC

我不知道该怎么做。我试过禁用按钮并做

self.tabBar.items?[3].accessibilityElementsHidden = true

但该按钮仍在标签栏上。如何让 VC 在标签栏控制器的数组中但不显示在按钮中?

【问题讨论】:

  • 我了解您的问题。为什么不能删除视图控制器并重新插入?
  • 因为即使您隐藏标签栏也不会重新排列标签,直到您删除视图控制器。
  • 我想了解“为什么”你要这样做?当你使用这个“隐藏”的 VC 时,你打算在标签栏中的活动标签上发生什么?我怀疑你真正想做的事情可以用另一种方式处理,但我不能推荐没有原因的解决方案。
  • 我需要这个,因为我需要以编程方式触发开关,但不能让 VC 始终可用。因为有时尚未创建数据以使 VC 正确存在@ChrisAllwein
  • 但是一旦它“正确存在”,你希望它在标签栏上显示为一个按钮吗?

标签: ios swift swift3 uitabbarcontroller uitabbar


【解决方案1】:

按原样使用UITabBarController 是不可能的。

不能 100% 确定为什么您需要在该数组中有一个 VC,但在栏上永远不可见,如果是这样,请考虑子类化 UITabBarController

更改UITabBarControllerviewControllersitems 属性将鼓励iOS 重新加载组件,因此您会在TabBar 中看到VC。

【讨论】:

  • 我将如何子类化这个?我需要这个,因为我需要以编程方式触发开关,但不能让 VC 始终可用。因为有时数据还没有创建好,VC 才能正常存在
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2019-02-03
相关资源
最近更新 更多