2017-06-27 9 views
0

APIのJSONレスポンスに基づいてボタンのタイトルを更新しようとしています。Button.setTitleは、ボタンがクリックされるまで発生しません。

JSONリクエストとボタンタイトルの設定は、ビューコントローラのviewDidLoadで行われますが、ボタンをクリックすると、ボタンのタイトルは更新されません。

誰もこれまでに経験したことはありますか?

以下は、内部の視界が行われました。

session.dataTask(with: request) {data, response, err in 
     if let data = data{ 
      var json: Any 
      do{ 
       json = try JSONSerialization.jsonObject(with: data) 
       //print(json) 
       guard let dictionary = json as? [String: Any] else{ 
        print("oops") 
        return 
       } 
       guard let roster = Roster(json: dictionary) else{ 
        print("oops2") 
        return 
       } 
       let member = roster.pickRandomMembers() 
       self.button.setTitle(member.first_name, for: .normal) 

      } 
      catch{ 
       print(error) 
      } 

     } 
}.resume() 

答えて

1

これを試してください。 DispatchQueue.main.async()メインUI上でUI更新コードを強制実行する

DispatchQueue.main.async() { 
    self.button.setTitle(member.first_name, for: .normal) 
} 
関連する問題