У меня есть приложение Flutter, которое начинается так:
void main() async {
// Check if user is logged in
runApp(
MaterialApp(
home: (isLoggedIn) ? MainPage() : PageLogin(),
),
);
}
Моя MainPage (и моя LoginPage) - это всего лишь 2 обычных виджета с отслеживанием состояния.
class MainPage extends StatefulWidget {
MainPage({Key key, this.selectedPageDefault = 0}) : super(key: key);
@override
_MainPageState createState() => _MainPageState();
}
Допустим, у меня есть 2 больше страниц, как и MainPage: PageOne
и PageTwo
.
Когда я нажимаю кнопку на MainPage
, я попадаю на PageOne
, а когда я нажимаю кнопку на PageOne
, он переводит меня к PageTwo
.
I go к ним, используя:
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => PageOne(), // Or PageTwo
),
);
Теперь, когда я нажимаю кнопку в PageTwo
, я хочу go вернуться к MainPage
.
Я мог бы использовать Navigator.of(context).popUntil(...)
, однако он должен использовать маршруты, и я не использовал go до MainPage
с использованием маршрута.
Это всего лишь пример, но на самом деле app У меня больше, чем 2 страницы после MainPage
, поэтому я не могу просто использовать pushReplacement
или хитрый способ добиться этого.
Как я могу go вернуться к MainPage
?