我对Swift中的这个解决方案看起来很难,但是我找不到适合我的解决方案。我试图隐藏我的" Admin" TabBarItem基于登录到应用程序的人员的权限。我可以禁用它,但它仍然显示在栏上。我希望能够为某些人展示它并为其他人隐藏它。另外,当我打印self.tabBarController?.viewControllers
时,我没有。
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)
}
}
}
}
另外,我一直在读这是违反Apple的预期用途的。那是真的吗?是否有更好的工作流程来完成这种类型的功能?
答案 0 :(得分:0)
我会创建一个标签,打开用户的帐户,并在用户VC标签中有一个按钮,只为管理员打开一个页面。您可以根据需要使用adminButton.hidden = true
或adminButton.hidden = false
显示和隐藏按钮。