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

Ios 如何在加载响应(使用Alamofire)后加载视图控制器(或调用segue)?,ios,swift,request,response,alamofire,Ios,Swift,Request,Response,Alamofire,我是斯威夫特的新手 我在第一视图控制器上有几个按钮。每次点击按钮,我都会向服务器发出不同的请求(从使用Alamofire的第一个ViewController)&只有当我从服务器获得JSON响应时,才应该加载第二个ViewController(此外,我会通过解析响应JSON数据来动态填充第二个ViewController上的控件) 我的问题是第二视图控制器加载了旧数据(在为该按钮单击加载响应之前) 我的场景:(swift 3) 当我单击ButtonA时,返回并再次单击ButtonA-Button

我是斯威夫特的新手

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

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

我的场景:(swift 3)

  • 当我单击ButtonA时,返回并再次单击ButtonA-ButtonA的数据将正确显示
  • 当我单击ButtonA时,返回并单击ButtonB-ButtonA的数据显示错误

未发布代码的借口(由于工作场所的一些限制)。提前感谢

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

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

您可以在performsgue的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*/
    }
}

您可以在performsgue的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*/
    }
}

非常感谢,你救了我一天!非常感谢,你救了我一天!