iOS:使用 Alamofire 进行网络调用并希望在网络调用完成后推送下一个视图控制器

Posted

技术标签:

【中文标题】iOS:使用 Alamofire 进行网络调用并希望在网络调用完成后推送下一个视图控制器【英文标题】:iOS: Making a network call using Alamofire and want to push the next view controller after the network call is done 【发布时间】:2018-01-26 07:50:06 【问题描述】:

我基本上得到了填充单例数据存储的网络调用和显示数据的第一个视图控制器之间的竞争条件。在显示第一个视图控制器后,没有数据,但如果我重新加载视图,那么数据就会在那里。那么如何在网络调用完成后才推送视图控制器呢?谢谢。这是我当前的代码:

     guard let username = emailTextField.text else  return 
    guard let password = passwordTextField.text else  return 
    UIApplication.shared.beginIgnoringInteractionEvents()
    TFTINetworkManager.shared().login(username: username, password: password) loginSuccessful in
        self.activityIndicator.stopAnimating()
        if loginSuccessful 
            TFTINetworkManager.shared().getUserInfo  _ in
                let VC = TFTIHomeFeedVC.createFromStoryboard()
                self.navigationController?.pushViewController(VC, animated: true)
            
         else 
            let alert = UIAlertController(title: "Unsuccessful Login", message: "Did you provide the right login credentials", preferredStyle: .alert)
            alert.addAction(UIAlertAction(title: "dismiss", style: .default, handler: nil))
            self.present(alert, animated: true, completion: nil)
        
        UIApplication.shared.endIgnoringInteractionEvents()
    

【问题讨论】:

【参考方案1】:

我想通了。我基本上有嵌套网络调用,并调用外部网络调用的完成处理程序作为嵌套网络调用的完成值。

【讨论】:

以上是关于iOS:使用 Alamofire 进行网络调用并希望在网络调用完成后推送下一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何检查网络响应来自 Alamofire 请求中的缓存或服务器?

在 iOS 应用程序终止时处理 Alamofire 请求

根据行业惯例,我应该在进行 API 调用之前还是在 Alamofire 中进行 API 调用期间检查互联网可访问性

ios Alamofire网络插件的使用

带有 Alamofire POST(内容类型 JSON)的 iOS OS 10.3.3 问题

ios、alamofire中的响应处理问题