-2
我有两个viewControllers
:LoginViewController和NextViewController。现在,当应用程序运行时,LoginViewController运行一个完成处理程序,它负责使用HTTP请求进行身份验证,并在完成之后调用另一个可获取必要用户数据的闭包。iOS Swift:在视图和完成处理程序之间传递数据
我不知道如何将回调函数中返回的数据传递给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
}