【Swift】iOSアプリで現在開いている全てのViewControllerを閉じる

今回は、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 を閉じる方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG