0
を派遣することはできません:はMBProgressHUDを管理する方法を見つけ出すと私はiOSアプリを実装し、サーバーへの写真のアップロード中に次の操作を実行しようとしている
- Alamofire
- でスタートアップロードプロセスは進行状況を表示しますMBProgressHUD
- アップロードが行われ、サーバの応答に応じて、進行状況インジケータ
- を隠し、メッセージ(成功または失敗)を表示 とインジケータは、ビュー を解任します0
私はそれを達成できません。特に、応答メッセージを2秒間表示した後に表示を閉じることはできません。ここに私のコードです。 どうしたらいいですか?おかげさまで
class ShareViewController: UIViewController {
var progressHUD: MBProgressHUD! = nil
func sendToServer(image: UIImage, imageName: String) {
Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append(jpgImageData!, withName: "photos",fileName: fname, mimeType: mime)
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
},
to:url!)
{ (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
DispatchQueue.main.async(execute: {
self.progressHUD.show(animated: true)
self.progressHUD.progress = (Float(progress.fractionCompleted))
self.progressHUD.hide(animated: true, afterDelay: 3)
})
})
upload.responseJSON { response in
if response.response?.statusCode == 200{
if let result = response.result.value {
var message = String()
message = "200, OK"
self.progressHUD.label.text = message
self.progressHUD.show(animated: true)
self.progressHUD.hide(animated: true, afterDelay: 2)
DispatchQueue.main.async(execute: {
self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
})
}
}
else{
var message = String()
message = "Not 200, NOK"
self.progressHUD.label.text = message
self.progressHUD.show(animated: true)
self.progressHUD.hide(animated: true, afterDelay: 2)
DispatchQueue.main.async(execute: {
self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
})
}
}
case .failure(let encodingError):
print(encodingError)
var message = String()
message = "Failure, NOK"
self.progressHUD.label.text = message
self.progressHUD.show(animated: true)
self.progressHUD.hide(animated: true, afterDelay: 2)
DispatchQueue.main.async(execute: {
self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
})
}
}
}
}