在Swift

时间:2016-04-12 20:59:11

标签: swift uitabbar uitabbaritem

我对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的预期用途的。那是真的吗?是否有更好的工作流程来完成这种类型的功能?

1 个答案:

答案 0 :(得分:0)

我会创建一个标签,打开用户的帐户,并在用户VC标签中有一个按钮,只为管理员打开一个页面。您可以根据需要使用adminButton.hidden = trueadminButton.hidden = false显示和隐藏按钮。