ios - Swift - 将来自 API 的数据传递到另一个 View Controller

标签 ios swift segue viewcontroller

请检查以下代码:

 @IBAction func sendActivationCode(_ sender: UIButton) {
     service.Register(phoneNumber: self.mobileNumberTxt.text!, callback: { (response) in
        self.setCustomerValues(response: response)
      })
 }

 func setCustomerValues(response: [String:Any]) {
      registrationToken = (response["token"]! as! String)
      code = response["code"] as! Int
 }

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "toStep2" {
             let vc = segue.destination as! Step2ViewController
             vc.registrationToken = registrationToken
       }
 }

问题是:prepare函数在setCustomerValues之前执行,并且我无法在Step2ViewController.swift中使用registrationToken变量> 因为它是零。

最佳答案

不要将 Segue 从按钮连接到 Step2ViewController,而是从 View Controller 连接。这样,当触摸按钮时,segue 就不会自动执行。

然后从 setCustomerValues 回调中调用 PerformSegue,以在获取注册 token 后显式执行 segue。请注意,如果回调不在主线程上,则需要在调用performSegue 之前将dispatch_async 到主线程。

关于ios - Swift - 将来自 API 的数据传递到另一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41374069/

相关文章:

swift - 如何在 alamofire 中将 pdf 文件作为多部分表单数据上传?

ios - 来自外部源的 iframe 内容未加载到 iOS 上的本地 HTML 文件中

ios - 将所有文档目录同步到 iCloud

ios - 准备segue时的Segue特定值

ios - 在 DetailViewController 中的索引路径之间转换? swift

为 UIScrollView 获取数据时 iOS 应用程序在 iPad 上崩溃

iphone - 可达性和通知中心

ios - PayPalEnvironmentProduction 和 PayPalEnvironmentSandbox 失败

ios - 我可以使用多少剩余内存?

swift - 如何使用 AlertView 进行搜索?