私は2つのviewControllers
:LoginViewControllerとNextViewControllerを持っています。アプリケーションが実行されると、LoginViewControllerは、HTTPリクエストで認証を処理する完了ハンドラを実行し、完了後、必要なユーザデータを取得する別のクロージャを呼び出します。iOS Swift:ビューと完了ハンドラ間でデータを渡す
バックグラウンドでHTTPリクエストを実行しているときにデータが利用可能になったときを知る方法がないため、コールバック関数からNextViewControllerに戻ってデータを渡す方法がわかりません。
それでデータが入手可能になったら、私はどのように提示するべきですか?
私はnextViewController内でユーザー情報を取得するための2番目のコールバックメソッドを呼び出すことができますが、これによりアプリケーションの処理速度が低下します。
は、ここでのコード例です:
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
}