如何禁用特定的tabbar项?像第三个图标......
self.tabBarItem.items![2].enabled = false
必须有办法做一个简单的任务,如一个班轮? 以上都不起作用......
答案 0 :(得分:11)
以下是答案
if let arrayOfTabBarItems = tabBarViewController.tabBar.items as! AnyObject as? NSArray,tabBarItem = arrayOfTabBarItems[2] as? UITabBarItem {
tabBarItem.enabled = false
}
答案 1 :(得分:8)
这是我使用 Swift 3:
执行相同操作的代码 let tabBarControllerItems = self.tabBarController?.tabBar.items
if let tabArray = tabBarControllerItems {
tabBarItem1 = tabArray[0]
tabBarItem2 = tabArray[1]
tabBarItem1.isEnabled = false
tabBarItem2.isEnabled = false
}
只需将上面的代码块放在viewDidLoad()
方法中作为初学者,不要忘记创建tabBarItem
变量,你就可以从那里开始了!
答案 2 :(得分:3)
在单个视图上禁用tabBarItem(并在视图更改时重新启用它):
在类定义中,为UITabBarItems创建占位符类变量:
var tabBarItemONE: UITabBarItem = UITabBarItem()
var tabBarItemTWO: UITabBarItem = UITabBarItem()
etc...
然后,在 viewWillAppear 中,根据需要禁用这些项目:
let tabBarControllerItems = self.tabBarController?.tabBar.items
if let arrayOfTabBarItems = tabBarControllerItems as! AnyObject as? NSArray{
tabBarItemONE = arrayOfTabBarItems[0] as! UITabBarItem
tabBarItemONE.enabled = false
tabBarItemTWO = arrayOfTabBarItems[1] as! UITabBarItem
tabBarItemTWO.enabled = false
}
在 viewWillDisappear 中,重新启用项目:
override func viewWillDisappear(animated: Bool) {
tabBarItemONE.enabled = true
tabBarItemTWO.enabled = true
}
答案 3 :(得分:2)
SWIFT 4.2
if let arrayOfTabBarItems = self.tabBar.items as AnyObject as? NSArray,let
tabBarItem = arrayOfTabBarItems[1] as? UITabBarItem {
tabBarItem.isEnabled = false
}
答案 4 :(得分:1)
这是单行:
在Objective C中,该行代码在viewDidLoad:
中起作用。
在Swift中,它在viewDidLoad()
中不起作用,但适用于viewWillAppear()
。
答案 5 :(得分:1)
Swift 5
您可以使用此代码启用或禁用单个标签栏按钮。
var controller = YourViewController()
controller.tabBarItem.isEnabled = false
答案 6 :(得分:0)
如果有人正在寻找如何禁用所有标签栏项:
if let items = tabBarController?.tabBar.items {
items.forEach { $0.isEnabled = false }
}
答案 7 :(得分:0)
有一种更简单的方法,只需一行代码:
self.tabBarController?.tabBar.items?[2].isEnabled=false