Reputation: 3209
I am trying to run some method when user click back or I use Navigator.pop()
in second screen.
I have two screens.
After editing I pop user to first second. Now in first screen I use SharedPreference
. But I need to re run a method when user comes back to 1st screen. How can I do this?
Upvotes: 10
Views: 11639
Reputation: 268404
While navigating to Edit
screen from Settings
screen, use this (inside your Settings
screen)
Navigator.pushNamed(context, "/editScreen").then((_) {
// you have come back to your Settings screen
yourSharedPreferenceCode();
});
If you only want to run this code on some event that happened on your Edit
screen, you can make use of pop
method inside Edit
screen like
Navigator.pop(context, true); // pass true value
And above code should be:
Navigator.pushNamed(context, "/editScreen").then((value) {
if (value) // if true and you have come back to your Settings screen
yourSharedPreferenceCode();
});
Edit:
async-await
would look something like:
bool value = await Navigator.pushNamed(context, "/editScreen");
if (value) // if true and you have come back to your Settings screen
yourSharedPreferenceCode();
Upvotes: 12