こんにちは!最近は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