【问题标题】:Refresh data UILabel after updating Json swift 4更新Json swift 4后刷新数据UILabel
【发布时间】:2019-02-01 20:31:07
【问题描述】:

您好,我在更新 json 后刷新 UILabel 字段时遇到问题。 json 文件在 API 中成功更新,但当我单击它进行重定向时没有 UILabel。这是我的代码

@IBAction func saveButton(_ sender: AnyObject) {

        //API Update profile and Bearer token
        let token = HPWSLoginManager.shared().saveSuccessResponse.token
        let url = URL(string: "http://51.38.36.76:40/api/v1/updateProfile")
        var request = URLRequest(url: url!)
        request.httpMethod = "PUT"
        request.addValue("Bearer \(token!)", forHTTPHeaderField: "Authorization")
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")

        var userNumberTmp: String?
        var userFirstName: String?
        var userLastName: String?
        var userNumber: String?

        // set new values user
        userNumberTmp = self.number.text
        userFirstName = self.firstNameTextfield.text
        userLastName = self.lastNameTextfield.text
        userNumber = userNumberTmp?.replacingOccurrences(of: " ", with: "")

        let json: [String: Any] = ["usernumber": userNumber!,
                                   "firstname": userFirstName!,
                                   "lastname": userLastName!
        ]
        let jsonData = try? JSONSerialization.data(withJSONObject: json)
        request.httpBody = jsonData

        let task = URLSession.shared.dataTask(with: request) { data, response, error in
            guard let data = data, error == nil else {
                print(error?.localizedDescription ?? "No data")
                return
            }
            let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
            if let responseJSON = responseJSON as? [String: Any] {
                print(responseJSON)

                DispatchQueue.main.async {
                    let alert = UIAlertController(title: "Success", message: "edit Successful!", preferredStyle: .alert)
                    let action = UIAlertAction(title: "OK", style: .default) { (action) in

                   self.performSegue(withIdentifier: "MyInformation", sender: self)

                        // refresh UILabel ???????????????????

                    }

                    alert.addAction(action)
                    self.present(alert, animated: true, completion: nil)
            }
        }
    }

    task.resume()
}

我重定向页面但我不知道如何在重定向时刷新数据(在 UILabel 中)请帮助我

【问题讨论】:

标签: ios iphone swift uilabel refresh


【解决方案1】:
 DispatchQueue.main.async {
                    let alert = UIAlertController(title: "Success", message: "edit Successful!", preferredStyle: .alert)
                    let action = UIAlertAction(title: "OK", style: .default) { (action) in

                   self.performSegue(withIdentifier: "MyInformation", sender: self)

                        // refresh UILabel ???????????????????

lblName.text = //Enter your label value here

                    }

【讨论】:

    【解决方案2】:

    试试这个。 您需要将数据传递给 nextViewController,如下所示

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (segue.identifier == "MyInformation") {
            let vc = segue.destination as! NextViewController
            vc.dataProroprty = "Your Data" // your json data
        }
    }
    

    在下一个 ViewController 中

    var dataProperty = ""
    
      override func viewDidLoad() {
            super.viewDidLoad()
            self.lbl.text = dataProperty
        }
    

    【讨论】:

    • 你能解释得更好吗?
    • 你想要什么,所以我可以解释一下,这足以传递数据吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多