浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

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

  • この記事いいね! (0)