如何删除swift 3中的Tabbar项目

时间:2017-07-18 06:58:24

标签: ios swift swift3 uitabbarcontroller uitabbar

我在我的UITabbarController中有5个UIViewcontroller,但是我需要在tabbar中显示它们4,所以我试图从UITabbarController中删除最后一个tabbar项目。

self.tabBarController?.tabBar.items?.removeLast()

但是我收到了这个错误。

  

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

那么如何从tabbar中删除最后一个tabbar项?

3 个答案:

答案 0 :(得分:1)

您应该在tabbar控制器中操作viewcontrollers数组。 试试这个。

if let tabBarController = self.tabBarController {
     let indexToRemove = 4
     if indexToRemove < tabBarController.viewControllers?.count {
         var viewControllers = tabBarController.viewControllers
         viewControllers?.remove(at: indexToRemove)
         tabBarController.viewControllers = viewControllers
     }
 }

答案 1 :(得分:1)

要从tabBarController?中删除ViewController,您应该只执行:

tabBarController?.viewControllers?.removeLast()

假设你删除了最后一个控制器(标签)。

viewControllers

有关
  

选项卡栏显示的根视图控制器数组   接口

显然,你可以移除和控制器,例如,删除第一个控制器:

tabBarController?.viewControllers?.remove(at: 0)

<强>更新

  

首先,我需要打开第五个视图控制器,我不会显示它   的TabBar。用户无法进入第五个标签栏。只有我可以导航用户。所以原因   我试图这样做。

为实现这一目标,您应该做的就是让您的故事板结构为:

enter image description here

考虑到第一个视图控制器(应该显示标签栏控制器的视图控制器)是您不想让它出现在标签栏中的视图控制器。

答案 2 :(得分:0)

要删除您知道参考或位置的标签栏项目,您可以这样做:

tabBarController?.viewControllers?.remove(at: 4)