モーダルからルートビューコントローラにポップする 質問する

モーダルからルートビューコントローラにポップする 質問する

次のコードを使用してルート ビュー コントローラーにポップしようとしています。

self.navigationController!.popToRootViewController(animated: true)

これは通常は機能しますが、現在のビューがモーダルの場合にこのコードを使用しようとするとエラーが発生します。このような状況でルート ビュー コントローラーに戻るにはどうすればよいですか?

前もって感謝します。

ベストアンサー1

現在のコントローラーが表示されているかどうかを確認できます。表示されている場合はそれを閉じて、そうでない場合はrootViewController直接rootViewController

if self.presentingViewController != nil {
    self.dismiss(animated: false, completion: { 
       self.navigationController!.popToRootViewController(animated: true)
    })
}
else {
    self.navigationController!.popToRootViewController(animated: true)
}

おすすめ記事