スポンサーリンク
前回の「【Flutter】遷移先から戻る処理で遷移前のページに戻りたくない時」で紹介した遷移方法の自分の認識が少し違ったので訂正。
pushReplacementで遷移した場合には、遷移先のAppBarの戻るボタンが表示されないと思っていたが、正しくは「pushReplacementを使った遷移元ページの情報を残さない」というものだった。
ログイン画面では以下のような画面遷移を想定していた。
ページA :Googleまたは メールアドレスでのサインイン選択画面
ページB :登録画面、ここではページAに戻ることは可能にしたい
ページC :登録完了後に遷移する本来のアプリMain画面:ここではページA、Bに戻りたくない
だが上記の実装の場合、ページCのAppBarには戻るボタンが表示され、ページAに戻ることが可能。(pushReplacementでページBのpush情報は残されていないのでページAに戻る)
ページCではページA、Bのどちらにも戻りたくないが、ページBからAには戻ることは可能としたい。
こんな場合は、pushAndRemoveUntilを使う。
ページBでの登録完了後、pushAndRemoveUntilでページCへ遷移。
これで、ページBからAに戻ることは可能になりつつ、ページCのAppBarに戻るボタンは表示されずページA、Bに戻ることはできない処理を実現可能となった。
スポンサーリンク
スポンサーリンク