今回は、iOS アプリで、現在開いている全ての ViewController を閉じて、最初のページに戻る方法についてです。
例えば、アプリがバックグラウンドに移動し、その後復帰したら一番最初のページが開かれているようにする、という機能を実装する際に使用します。
参考にさせていただいた記事はこちら。
ios – single function to dismiss all open view controllers – Stack Overflow
https://stackoverflow.com/questions/33520899/single-function-to-dismiss-all-open-view-controllers
…今見たら 2015年の記事でしたが、問題なかったです!
実装方法は下記のコードを、表示したい ViewController
で実行するだけです!
self.navigationController?.popToRootViewController(animated: true)
上であげた例で言うと、アプリ起動直後に表示される一番最初の ViewController
で、アプリがバックグラウンドになったことを検知したら、上記のコードを実行すればOKです。
なお、アプリがバックグラウンドになったことを検知するには、以前の記事「【Swift】アプリがバックグラウンド・フォアグラウンドに移動したことを検知する」をご覧ください。
実際に Simulator で確認したところ、アプリをバックグラウントにしたあと、再度開き直したら、一番最初の ViewController
が表示されました!
以上、iOS アプリで現在開いている全ての ViewController を閉じる方法についてでした。
ご参考になれば幸いです。