HOME > 問題解決一覧 > Warning: Attempt to present <ViewController: xxxxxx> on <HogeViewController: zzzzzzz> while a presentation is in progressのエラー
画面遷移時に下記のエラーが表示されるようになってしまいました。
Warning: Attempt to present <ViewController: xxxxxx> on <HogeViewController: zzzzzzz> while a presentation is in progress
もっと具体的にいうと、モーダル表示しているカスタムのビューからのイベントで、モーダル画面をdismiss
で閉じるタイミングで、モーダル表示元のViewControllerに対してdeletate
通知をして、そこでpresent
で他の画面を表示させようとすると当該エラーが表示されます。
このエラーは下記の状態のときに起きるようです。
dismiss
をanimation:true
で実行しているpresent
メソッドで新しい画面を表示させようとしているなので、dismissのアニメーションが完了したタイミングでprezentを呼び出せばエラーは出なくなります。 色々やりかたがあるかと思いますが、sleep
メソッドで0.5秒ほど停止してからprezent
を実行すればいいと思います。 モーダル呼び出し元のViewController
func デリゲートメソッド() {
// 0.5秒待つ
sleep(0.5)
// 画面表示
present(HogeViewController, animated: true, completion: nil)
}
この記事に関する質問やご意見・ご感想がありましたら、下記よりコメントください。
Githubアカウントでログインしていれば誰でも投稿できます。