禁用tabbar项目 - Swift

时间:2015-07-19 08:46:52

标签: swift uitabbarcontroller tabbar

如何禁用特定的tabbar项?像第三个图标......

self.tabBarItem.items![2].enabled = false

必须有办法做一个简单的任务,如一个班轮? 以上都不起作用......

8 个答案:

答案 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