2017-05-23 7 views
0

私はストーリーボードで設定した4つのタブ項目を持っていますが、最後のタブバー項目をプロファイル画像にしたいのでプログラムで設定したいタブバーは1つだけです。他の3つのタブバー項目をプログラムで設定することなく、ProfileViewController内で1つのタブバー項目をプログラムで設定できる方法はありますか?ios tabbar項目をプログラムで設定する

私はタブバーの項目にこれを設定したいが、それは空白まで来ている:

override func awakeFromNib() { 

     super.awakeFromNib() 
     self.tabBarItem.title = "MY ACCOUNT" 
     // self.tabBarItem.image = UIImage(named: "Speech Bubble Filled-50") 

     if let postProfile = self.loggedInUserUid { 

      let imageRef = FIRStorage.storage().reference().child((loggedInUserUid)!+"/profile_pic.jpg") 

      imageRef.data(withMaxSize: 1 * 1024 * 1024, completion: { (data, error) -> Void in 
       if error != nil { 
        print(error) 
        return 
       } 
       DispatchQueue.main.async(execute: {() -> Void in 
        let image = UIImage(data: data!) 
        self.tabBarItem.image = image 
       }) 

      }).resume() 
}} 

答えて

4

ビューコントローラは、ストーリーボードからロードされた後、独自のタブ画像を設定することができます。あなたはawakeFromNibでそれを行うことができます。

class SecondViewController: UIViewController { 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     self.tabBarItem.image = UIImage(named: "star") 
    } 

} 

結果:

tab bar with star image

あなたは、私がイメージをサイジングしたより良い仕事をしたいかもしれませんが...

+0

はい!できます!!本当にありがとう!! – juelizabeth

+0

申し訳ありませんが、私は私の質問を更新しました。アセットフォルダからイメージを表示することはできますが、firebaseから取得したイメージを自分のタブバーイメージにすることはできません。 – juelizabeth

+0

UIに対するすべての更新は、メインスレッド(またはメインキュー)上で発生する必要があります。補完ハンドラがメインスレッドで呼び出されたことを確認してください。 –

関連する問題