Swift 3、Xcode 8.2を使用しています。Swift 3 - 非同期ジョブ後にView Controllerを解除する
私はボタンがあるビューコントローラを持っています。ボタンを押すと、以下のbuttonPressed
機能が実行されます。それは、回転するギアの動作インジケーターがポップアップするまで数秒かかる非同期ジョブを開始します。ジョブが終了したら、アクティビティインジケータを消して、View Controllerを元のVCに戻すようにします。
func buttonPressed() {
// Set up some stuff here
...
// this code block here is to asynchronously run the processing job
// while the activity indicator gear spins
self.displaySpinningGear()
DispatchQueue.main.async {
self.doSomeJobProcessing()
}
self.dismiss(animated: true, completion: nil)
// also dismiss the camera view
self.presentingViewController?.dismiss(animated: true, completion: nil) // error here
}
はしかし、私はその最後の文にエラーが発生します。
[アサート] 移行すでにながら、プレゼンテーションコントローラを解任しようとしています。 (< _UIAlertControllerAlertPresentationController:0x109e3b190>) 2017年3月3日21:37:56.833899 EOBリーダー[27710:6869686] [アサート] transitionViewForCurrentTransitionは、プレゼンテーションコントローラ がプレゼンテーション中に却下された、設定されていませんか? (< _UIAlertControllerAlertPresentationController:0x109e3b190>)
任意の助けを大幅に高く評価されるだろう。
ありがとうございました!これは私にとって完璧に機能しました。あなたがしていたことの背後にある根拠を私に説明してもらえますか?私はなぜ私が問題を抱えているのかを知ろうとしています。 – noblerare
私の答えが更新されました。まだ質問があれば教えてください.... – Krunal
あなたの編集をありがとうございます! – noblerare