Навигация из Купертино
У меня есть приложение с LoginScreen, которое переходит на HomeScreen после успешного входа. Я использую этот код ниже для замены виджета и запуска нового стека навигации:
Navigator.pushReplacement(
context,
CupertinoPageRoute(
builder: (context) => HomeScreen(),
),
);
HomeScreen - это CupertinoTabScaffold
с 2 CupertinoTabViews
,
Секунда CupertinoTabView
содержат виджет, который имеет кнопку выхода.
После успешного выхода из системы я хочу удалить HomeWidget и перейти к LoginScreen.
С помощью
Navigator.pushReplacement(
context,
CupertinoPageRoute(
builder: (context) => LoginScreen(),
),
);
в виджете внутри второго CupertinoTabView
только сбросить навигацию, и экран логина появляется внутри второго CupertinoTabView
,
Я хочу, чтобы какой-то код удалил мой HomeScreen и запустил новый стек навигации с LoginScreen.
2 ответа
Нашел решение из официального исходного кода FlutterGallery. Это позволит перейти к корневому каталогу.
Navigator.of(context, rootNavigator: true).pop();
Navigator.of(context, rootNavigator: true).pushAndRemoveUntil( CupertinoPageRoute(builder: (context) => SignUpPage()), (route) => false);
Это сработало, может быть, вы можете попробовать это