是否可以在特定用例的整个应用中隐藏或禁用标签栏上的标签栏项?
实施例: 当用户登录时,他们没有“经理角色”,最后一个标签栏项目将在整个应用程序中隐藏。当他们再次以管理员身份登录时,最后一个标签栏将被启用而不是隐藏。
答案 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