删除Swift中的TabBar项

时间:2015-02-07 16:09:33

标签: ios swift uitabbarcontroller tabbar

我目前试图找到一种删除方法,同时运行应用程序TabBar项目,我找到了启用或禁用它的方法,但没有完成删除它。

为了禁用它我做:

enter image description here

在ViewDidLoad

if let tabBarItem = self.tabBarController?.tabBar.items?[3] as? UITabBarItem {
            tabBarItem.enabled = false
}

这样效果很好但是用户仍然可以看到TabBar项目,我只是完全删除它,有没有办法?

我想通过Parse触发TabBarItem,如果我将Parse Data设置为true,它应该以不同的方式显示它。

5 个答案:

答案 0 :(得分:23)

您希望将viewControllers的{​​{1}}属性设置为一个数组,其中排除了您不想再拥有的特定viewController。

tabBarController

答案 1 :(得分:7)

对于那些只想禁用一个项目的人。使用@ Daniele解决方案中的此代码。并将其放在您的UITabBarController类

viewDidLoad() {

let index = 0 //0 to 5
viewControllers?.remove(at: index)

}

答案 2 :(得分:1)

Swift 3.1:只删除Tab Bar Controller中的一个索引(你可以在viewDidLoad和viewDidAppear中使用这个方法)

override func viewDidAppear(_ animated: Bool) {

}
override func viewDidLoad() {
    super.viewDidLoad()

}

tabBarController.viewControllers?.remove(at:0)  // for 0 index
tabBarController.viewControllers?.remove(at:1)  // for 1 index
tabBarController.viewControllers?.remove(at:2)  // for 2 index

如果Tab栏中有4个索引,并且您想删除最后2个索引

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

第一行将删除索引第3行,你将从4中保持3,并且当你删除第2个索引时它将再次删除第3个索引,然后你将在最后保留2个索引。

答案 3 :(得分:1)

Swift 4.1 删除更多项目使用数组

let index = [2,0]
index.forEach{viewControllers?.remove(at: $0)}

数组中的点是你应该使用索引的降序来删除以获得所需的结果。

答案 4 :(得分:-6)

更好的方法是仅使用文本而不是图像。选择'space'作为文本然后禁用它。然后用户将无法看到它。我没有测试过,但我相信它会起作用。