1
我在Swift中很难找到这个解决方案,但是我没有想出一个适用于我的解决方案。我试图根据登录到应用程序的人的权限隐藏我的“管理员”TabBarItem。我可以禁用它,但它仍然显示在栏上。我希望能够为某些人展示它并为其他人隐藏它。此外,当我打印self.tabBarController?.viewControllers
我得到零。在Swift中删除/隐藏UITabBarItem
class TabBarMenuController: UITabBarController {
let ref = Firebase(url: "")
var position = ""
func getPosition() {
let userRef = ref.childByAppendingPath("users/\(ref.authData.uid)")
userRef.observeSingleEventOfType(.Value, withBlock: {snapshot in
if snapshot.value["position"] as! String != "Staff" {
self.position = snapshot.value["position"] as! String
}
})
}
override func viewWillAppear(animated: Bool) {
getPosition()
print(self.tabBarController?.viewControllers)
if position != "Staff" {
if let tabBarController = self.tabBarController {
let indexToRemove = 3
if indexToRemove < tabBarController.viewControllers?.count {
var viewControllers = tabBarController.viewControllers
viewControllers?.removeAtIndex(indexToRemove)
tabBarController.setViewControllers(viewControllers, animated: true)
}
}
}
}
此外,我一直在阅读,这是违反苹果的预期用途。这是真的吗?是否有更好的工作流程来完成此类功能?