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