Fab*_*gue 12 tabbar uitabbarcontroller ios swift
我目前试图找到一种方法删除,同时运行应用程序TabBar项目,我找到了启用或禁用它的方法,但没有完成删除它.
为了禁用它我做:

在ViewDidLoad中
if let tabBarItem = self.tabBarController?.tabBar.items?[3] as? UITabBarItem {
tabBarItem.enabled = false
}
Run Code Online (Sandbox Code Playgroud)
这很好,但仍然用户可以看到TabBar项目,我只是完成删除它,有没有办法?
我想通过Parse触发TabBarItem,如果我将Parse Data设置为true,它应该显示不应该的其他方式.
Dan*_*ele 24
您希望使用数组设置您的viewControllers属性,在tabBarController该数组中排除了您不想再拥有的特定viewController.
if let tabBarController = self.tabBarController {
let indexToRemove = 3
if indexToRemove < tabBarController.viewControllers?.count {
var viewControllers = tabBarController.viewControllers
viewControllers?.remove(at: indexToRemove)
tabBarController.viewControllers = viewControllers
}
}
Run Code Online (Sandbox Code Playgroud)
对于那些只想禁用一个项目的人.使用@ Daniele解决方案中的此代码.并将它放在您的UITabBarController类中
viewDidLoad() {
let index = 0 //0 to 5
viewControllers?.remove(at: index)
}
Run Code Online (Sandbox Code Playgroud)
Swift 5:用于仅删除选项卡栏控制器中的一个索引(您可以在 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
Run Code Online (Sandbox Code Playgroud)
如果选项卡栏中有 4 个索引并且您想删除最后 2 个索引
tabBarController.viewControllers?.remove(at:2)
tabBarController.viewControllers?.remove(at:2)
Run Code Online (Sandbox Code Playgroud)
第一行将删除索引第三个,您将从 4 个索引中剩下 3 个,当您删除第二个索引时,它将再次删除第三个索引,然后您将在最后留下 2 个索引。
其他方式
//MARK: - Function Call
removeTab(at: 4)
//MARK: - Method
func removeTab(at index: Int) {
if self.viewControllers?.count ?? 0 >= index {
self.viewControllers?.remove(at: index)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14759 次 |
| 最近记录: |