6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flutterで複数pushした画面やダイアログをまとめて閉じて戻る方法

Last updated at Posted at 2020-02-25

こんにちは!最近はFlutterで個人開発を行なっている、iOSアプリ開発者の村松龍之介です。

やりたいこと

ホーム画面からpushした画面上でダイアログを開き、ダイアログのボタンを押すとホーム画面へ戻りたかったのですが、すぐに分からなかったので今回調べました。

課題

ダイアログを閉じるのに Navigator.of(context).pop()が必要なので2回popしなければなりません。

Navigator.of(context).pop(); // ダイアログを閉じる
Navigator.of(context).pop(); // pushした画面に戻る

上記のように書けば実現はできるのですが、2度同じことを書かなくても実現する方法を調べました。

解決方法

Navigator.of(context).popUntil((route) => route.isFirst);

popUntilメソッドの使い方が最初わからなかったのですが、文脈的にも「ルートの最初まで戻る」ということで、この使い方で良さそうですね。

参考

Navigator.popUntilを使用して、固定名なしでルーティングする - dart - Dev4App's Blog

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?