Навигация из Купертино

У меня есть приложение с 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. Это позволит перейти к корневому каталогу.

https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart

Navigator.of(context, rootNavigator: true).pop();
                    Navigator.of(context, rootNavigator: true).pushAndRemoveUntil( CupertinoPageRoute(builder: (context) => SignUpPage()), (route) => false);

Это сработало, может быть, вы можете попробовать это

Другие вопросы по тегам