我目前试图找到一种删除方法,同时运行应用程序TabBar项目,我找到了启用或禁用它的方法,但没有完成删除它。
为了禁用它我做:
在ViewDidLoad
中if let tabBarItem = self.tabBarController?.tabBar.items?[3] as? UITabBarItem {
tabBarItem.enabled = false
}
这样效果很好但是用户仍然可以看到TabBar项目,我只是完全删除它,有没有办法?
我想通过Parse触发TabBarItem,如果我将Parse Data设置为true,它应该以不同的方式显示它。
答案 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'作为文本然后禁用它。然后用户将无法看到它。我没有测试过,但我相信它会起作用。