Swift 如何禁用选项卡栏项?
对于特定的用例,是否可以在整个应用程序中隐藏或禁用选项卡栏上的选项卡栏项目 例如:Swift 如何禁用选项卡栏项?,swift,uitabbarcontroller,Swift,Uitabbarcontroller,对于特定的用例,是否可以在整个应用程序中隐藏或禁用选项卡栏上的选项卡栏项目 例如: 当用户登录且没有“管理员”角色时,最后一个选项卡栏项目将在整个应用程序中隐藏。当他们以管理员身份再次登录时,最后一个选项卡栏将被启用而不隐藏。如果您位于UITabBarController的源文件中,只需在viewDidLoad方法中添加以下代码即可禁用最后一项 下面的代码还假设您在选项卡栏中有UITabBarItem项。否则你知道它是什么类型的物品,所以你可以相应地施放 if let items = tabBa
当用户登录且没有“管理员”角色时,最后一个选项卡栏项目将在整个应用程序中隐藏。当他们以管理员身份再次登录时,最后一个选项卡栏将被启用而不隐藏。如果您位于UITabBarController的源文件中,只需在viewDidLoad方法中添加以下代码即可禁用最后一项 下面的代码还假设您在选项卡栏中有UITabBarItem项。否则你知道它是什么类型的物品,所以你可以相应地施放
if let items = tabBar.items as? [UITabBarItem] {
if items.count > 0 {
let itemToDisable = items[items.count - 1]
itemToDisable.enabled = false
}
}
更好的代码(在Swift 4中):
更好的解决方案(在Swift 5中)
Swift 5一班轮
let n = 2. //The tab number to disable
self.tabBarController!.tabBar.items![n].isEnabled = false
如果用户不是经理,那么最好的设计是根本不显示最后一个选项卡。其中2是tabBarController中选项卡的索引
tabBarControlled?.tabBar.items?[2].isEnabled = isManager
let n = 2. //The tab number to disable
self.tabBarController!.tabBar.items![n].isEnabled = false