2016-04-12 39 views
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) 
       } 
      } 

     } 

    } 

また、私はAppleの意図した使用に反していることを読んでいます。本当ですか?このタイプの機能を実現するためのより良いワークフローはありますか?

答えて

0

ユーザーのアカウントを開くタブを作成し、管理者用のページを開くユーザーVCタブのボタンを作成します。必要に応じてadminButton.hidden = trueまたはadminButton.hidden = falseを使用してボタンを表示および非表示にすることができます。

関連する問題