2017-05-23 13 views
0

스토리 보드를 통해 설정 한 네 개의 탭 항목이 있지만 마지막 탭 표시 줄 항목을 내 프로필 그림으로 지정하기 때문에 프로그래밍 방식으로 설정하려는 탭 막대가 하나만 있습니다. 프로그래밍 방식으로 다른 세 탭 모음 항목을 설정하지 않고도 프로그래밍 방식으로 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에 대한 모든 업데이트는 주 스레드 (또는 주 큐)에서 발생해야합니다. 완료 핸들러가 메인 스레드에서 호출되는지 확인 하시겠습니까? –