次のコードを使用してルート ビュー コントローラーにポップしようとしています。
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)
}