Swift:如何使选项卡视图控制器按钮不显示?
Posted
技术标签:
【中文标题】Swift:如何使选项卡视图控制器按钮不显示?【英文标题】:Swift: how to make tab view controller button not show? 【发布时间】:2017-07-11 13:08:11 【问题描述】:好的,我的所有视图控制器都由标签栏控制器管理,显然,当您在情节提要中连接控制器和 Vcs 之间的关系作为“视图控制器”时,标签栏上会出现一个按钮。然后可以通过标签栏控制器访问它们。
我的问题是我需要有一个 VC 作为视图控制器数组,但不能显示在选项卡栏上的按钮中。用户应该无法访问它,但我需要能够在代码中使用selectedIndex
切换到该 VC
我不知道该怎么做。我试过禁用按钮并做
self.tabBar.items?[3].accessibilityElementsHidden = true
但该按钮仍在标签栏上。如何让 VC 在标签栏控制器的数组中但不显示在按钮中?
【问题讨论】:
我了解您的问题。为什么不能删除视图控制器并重新插入? 因为即使您隐藏标签栏也不会重新排列标签,直到您删除视图控制器。 我想了解“为什么”你要这样做?当你使用这个“隐藏”的 VC 时,你打算在标签栏中的活动标签上发生什么?我怀疑你真正想做的事情可以用另一种方式处理,但我不能推荐没有原因的解决方案。 我需要这个,因为我需要以编程方式触发开关,但不能让 VC 始终可用。因为有时尚未创建数据以使 VC 正确存在@ChrisAllwein 但是一旦它“正确存在”,你希望它在标签栏上显示为一个按钮吗? 【参考方案1】:按原样使用UITabBarController
是不可能的。
不能 100% 确定为什么您需要在该数组中有一个 VC,但在栏上永远不可见,如果是这样,请考虑子类化 UITabBarController
。
更改UITabBarController
的viewControllers
或items
属性将鼓励ios 重新加载组件,因此您会在TabBar 中看到VC。
【讨论】:
我将如何子类化这个?我需要这个,因为我需要以编程方式触发开关,但不能让 VC 始终可用。因为有时数据还没有创建好,VC 才能正常存在以上是关于Swift:如何使选项卡视图控制器按钮不显示?的主要内容,如果未能解决你的问题,请参考以下文章