我想从UploadtoServerVC中获取VC1中的上传状态(%,成功,失败)(UploadToServerVC将在上传开始前解除)。以下是我的VC流程图。将上传状态传递回特定的VC
在我UploadToServerVC,只要用户点击发送,我打电话dismissViewControllerAnimated回到VC1和具有内UploadToServerVC中的上传代码(现场,类似Instagram的后面)继续运行直到完成(通过保持强壮的自我在完成块内)。我想要实现的是在VC1中有某种进度条来显示遇到任何事情时的进度或错误。所以我想从VC1的上传代码(下面)中获取反馈。我上传的代码看起来像下面的是我如何在第1,2,3目前的风险投资,如下图所示在
@IBAction func postBtnPress(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
// 2. Create upload request
let uploadRequest = AWSS3TransferManagerUploadRequest()
// Track progress through an AWSNetworkingUploadProgressBlock with strong self to allow block to be able to execute properly even if VC was dismissed
uploadRequest?.uploadProgress = {(bytesSent:Int64, totalBytesSent:Int64, totalBytesExpectedToSend:Int64) in
dispatch_sync(dispatch_get_main_queue(), {() -> Void in
let progress = Float(totalBytesSent)/Float(totalBytesExpectedToSend)
print(" totalBytesSent \(totalBytesSent)/totalBytesExpectedToSend \(totalBytesExpectedToSend) progress = \(progress * 100) %")
})
}
// 3. Upload to Amazone S3
let transferManager = AWSS3TransferManager.defaultS3TransferManager()
transferManager.upload(uploadRequest).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (task: AWSTask) -> AnyObject? in
if let error = task.error {
// Send error back to VC1
} else {
// Send completion status to VC1
}
}
}
}
下面
1.
let vc1 = VC1()
let navController = UINavigationController.init(rootViewController: vc1)
self.navigationController?.presentViewController(navController, animated: true, completion: nil)
2.
self.navigationController!.pushViewController(uploadToServerVC, animated: true)
3.
self.dismissViewControllerAnimated(true, completion: nil)
我想NSNotification可能是要走的路。但是,我不确定这是否是最好的做法,因为它可能会变得混乱?有没有更好的方法或者通知是否可以走?
检查我答,如果服.. :) – vaibhav