iOS Swift:在视图和完成处理程序之间传递数据
我有两个iOS Swift:在视图和完成处理程序之间传递数据,ios,swift,Ios,Swift,我有两个视图控制器:LoginViewController和NextViewController。现在,当应用程序运行LoginViewController时,它会运行一个完成处理程序来处理HTTP请求的身份验证,完成后,它会调用另一个闭包来获取必要的用户数据 我不知道如何将从回调函数返回的数据传递到NextViewController以显示它,因为我无法知道数据何时可用,因为它正在后台运行HTTP请求 那么,当数据可用时,我应该如何呈现数据呢 我知道我可以调用第二个回调方法来获取nextVie
视图控制器
:LoginViewController和NextViewController。现在,当应用程序运行LoginViewController时,它会运行一个完成处理程序来处理HTTP请求的身份验证,完成后,它会调用另一个闭包来获取必要的用户数据
我不知道如何将从回调函数返回的数据传递到NextViewController以显示它,因为我无法知道数据何时可用,因为它正在后台运行HTTP请求
那么,当数据可用时,我应该如何呈现数据呢
我知道我可以调用第二个回调方法来获取nextViewController中的用户信息,但这会使应用程序速度变慢
下面是示例代码:
class Methods: NSObject {
//Singleton
class func sharedInstance() -> Methods {
struct Singleton {
static var sharedInstance = Methods()
}
return Singleton.sharedInstance
}
private func GETMethod(callBackMethod: (Success: Bool) -> Void) {
//Do the authentication
}
private func retriveUserData(callBackMethod: (data: String, Success: Bool) -> Void) {
//Gets the data and passes processed data back in a callBackMethod
}
func doAuthentication(callBackMethod: (Success: Bool) -> Void){
GETMethod { (Success) in
if Success {
self.retriveUserData({ (data, Success) in
data // <- HOW DO I GET THIS INTO LOGIN VIEW CONTROLLER?
callBackMethod(Success: true)
})
}
}
}
}
class LoginViewController: UIViewController {
func loginButtonPressed(){
Methods.sharedInstance().doAuthentication { (Success) in
}
}
}
class NextViewController: UIViewController {
//Present data when it becomes available
}
类方法:NSObject{
//独生子女
类func sharedInstance()->方法{
结构单体{
静态变量sharedInstance=Methods()
}
返回Singleton.sharedInstance
}
private func GETMethod(callBackMethod:(Success:Bool)->Void){
//进行身份验证
}
private func retrieveuserdata(callBackMethod:(数据:字符串,成功:Bool)->Void){
//获取数据并在回调方法中传递处理后的数据
}
func-doAuthentication(callBackMethod:(Success:Bool)->Void){
中的GETMethod{(成功)
如果成功{
self.retrieveUserData({(数据,成功)在
data//考虑使用MVC模式,尤其是“模型”部分。创建一个对象作为应用程序的共享数据模型。当您有新数据时更新它。根据更新与控制器加载的时间,它可以在数据更改时发送通知,也可以提供一个API来通知感兴趣的对象(控制器)可以查询以找出当前状态