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

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

【讨论】:

我将如何子类化这个?我需要这个,因为我需要以编程方式触发开关,但不能让 VC 始终可用。因为有时数据还没有创建好,VC 才能正常存在

以上是关于Swift:如何使选项卡视图控制器按钮不显示?的主要内容,如果未能解决你的问题,请参考以下文章

单击隐藏选项卡视图控制器中的后退按钮时如何显示选项卡

标签栏控制器显示最后推送的控制器 - swift 4

如何在弹出到根视图 Swift 后立即更改选项卡?

使用swift在选项卡式视图中的导航栏上添加按钮

swift 3登录后如何返回主页或以前的视图控制器

如何在1项标签栏控制器中制作顶部标签栏以在swift中显示多个视图控制器?