How to go back to previous route?

Viewed 10704

First of all, I'm not setting my routs in the MaterialApp like this

new MaterialApp(
  home: new Screen1(),
  routes: <String, WidgetBuilder> {
    '/screen1': (BuildContext context) => new Screen1(),
    '/screen2' : (BuildContext context) => new Screen2(),
    '/screen3' : (BuildContext context) => new Screen3(),
    '/screen4' : (BuildContext context) => new Screen4()
  },
)

Instead, I'm routing from different places in my app by pushing new rout like this:

Navigator.push(
                context,
                MaterialPageRoute(
                    builder: (BuildContext context) =>
                        Screen3(someInputData)));

How I can pop screens from the current one into screen number 2 for example?

1 Answers

Asumming: Screen1 -> Screen2 -> Screen3 -> Screen4

When you open the Screen2 , you could do something like this:

    Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => Screen2(),
                settings: RouteSettings(name: '/screen2')),
          );

And when you want to go back from Screen4 to Screen2 :

 Navigator.popUntil(context, ModalRoute.withName("/screen2"));

If you just want to go back to the previous screen use:

 Navigator.of(context).pop();
Related