2017-08-10 2 views
1

は、新しい画面がnavigationControllerにプッシュされます。動画がアップロードされている間、新しい画面とやり取りすることができます。ユーザーがアプリとやりとりできるようにしながら動画をアップロードすることはできますか?私は、ユーザーがtransferUtility.uploadDataを開始するためのボタンを押したとき、基本的に動画 <p></p>をアップロードするのiOSでバックグラウンド転送機能を使用してAWSのtransferUtility.uploadDataを使用してい

問題は、画面がナビゲーションにプッシュされたときに大きな遅延が発生しています.NavigationControllerで画面をプッシュする方法があるかどうか疑問に思っていました(新しい画面が表示された後すぐに友人に送ってください)。

transferUtility.uploadData(
     data, 
     bucket: S3BucketName, 
     key: videoName, 
     contentType: "movie/mov", 
     expression: expression, 
     completionHandler: completionHandler).continueWith { (task) -> AnyObject! in 
      if let error = task.error { 
       print(error) 
       print("Error: \(error.localizedDescription)") 
      } 

      if let _ = task.result { 
       print("Upload Starting!----") 

       // Do something with uploadTask. 

       //Open new screen 
       self.navigationController?.pushViewController(CameraDetailTableViewController(videoURL: AWS_URL + videoName), animated: false) 


      } 

      return nil; 
    } 

答えて

0

私たちのビデオをアップロードするには、dispatch_asyncを使用してください。こうすることで、アップロードはアプリ内の別のスレッドで行われ、バックグラウンドで実行されるため、ユーザーはうまく動作することができます。アップロードの完了ハンドラでは、アップロードが成功したことをポップアップを介してユーザに通知できます。ここで

はディスパッチ非同期のコードです:

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { // in half a second... 
    //upload your video here 
} 
関連する問題

 関連する問題