2017-05-23 57 views
0

我有四個標籤項目,我通過storyboard設置,但我只有一個標籤欄,我想以編程方式設置,因爲我希望最後一個標籤欄項目是我的個人資料圖片。有沒有一種方法可以在ProfileViewController中以編程方式設置一個標籤欄項目,而無需以編程方式設置其他三個標籤欄項目。以編程方式設置ios的tabbar項目

我想這個設置的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檢索到的圖像是我的tabbar圖像。 – juelizabeth

+0

UI的所有更新都需要在主線程(或主隊列)上進行。你確定在主線程上調用完成處理程序嗎? –

相關問題