如何在加载响应后加载视图控制器(或调用 segue)(使用 Alamofire)?

How to load view controller (or invoke segue) after response gets loaded(using Alamofire)?

我是 swift

的新手

我在第一个视图控制器上有几个按钮。我对每次单击按钮(从第一个 ViewController 使用 Alamofire)向服务器发出不同的请求,并且只有当我从服务器收到 JSON 的响应时,才应该加载第二个 ViewController(此外,我将通过解析响应 JSON 数据来动态填充 2nd ViewController 上的控件)。

我的问题是第二个视图控制器加载了旧数据(在为该按钮单击加载响应之前)。

我的场景:(swift 3)

请原谅没有发布代码(由于工作场所的一些限制)。提前致谢

您可以使用“.responseJSON”分析您的请求,如果您想加载一个新的 segue,请添加一个“if”并声明 performSegue(withIdentifier ..) 等

您可以像这样在 performSegue 的 sender 参数中传递从服务器接收到的子数据:

let jsonDataReceived = /*Returned data from server (Array or Dictionary )*/
    self.performSegue(withIdentifier: "YOUR_SEGUE_ID", sender: jsonDataReceived)

然后准备 segue 方法,您可以检索您的数据对象:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "YOUR_SEGUE_ID" {
        let jsonDataReceived = sender as? //(Array or Dictionary )
        /* intialize you viewController data with jsonDataReceived*/
    }
}