Button.setTitle直到点击按钮后才会发生

时间:2017-06-27 19:13:18

标签: ios swift

我尝试根据来自API的JSON响应来更新按钮的标题。

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 个答案:

答案 0 :(得分:1)

试试这个。 DispatchQueue.main.async()将强制UI更新代码在主线程上执行

DispatchQueue.main.async() {
    self.button.setTitle(member.first_name, for: .normal)
}