如何禁用标签栏项?

时间:2015-01-17 16:58:49

标签: swift uitabbarcontroller

是否可以在特定用例的整个应用中隐藏或禁用标签栏上的标签栏项?

实施例: 当用户登录时,他们没有“经理角色”,最后一个标签栏项目将在整个应用程序中隐藏。当他们再次以管理员身份登录时,最后一个标签栏将被启用而不是隐藏。

4 个答案:

答案 0 :(得分:3)

如果你在UITabBarController的源文件中,只需在viewDidLoad方法中添加以下代码即可禁用最后一项

下面的代码假设您在标签栏中有UITabBarItem项目。否则你知道它是什么类型的项目,所以你可以相应地投射

if let items = tabBar.items as? [UITabBarItem] {
  if items.count > 0 {
    let itemToDisable = items[items.count - 1]
    itemToDisable.enabled = false
  }
}

答案 1 :(得分:1)

快速5个班轮

let n = 2.   //The tab number to disable
self.tabBarController!.tabBar.items![n].isEnabled = false

答案 2 :(得分:0)

更好的代码(在Swift 4中):

tabBar.items?.forEach { $0.isEnabled = false }

答案 3 :(得分:0)

更好的解决方案(在Swift 5中)

tabBarControlled?.tabBar.items?[2].isEnabled = isManager