从 CupertinoTabScaffold 导航出来

Navigate out from CupertinoTabScaffold

我有一个带有登录屏幕的应用程序,在成功登录后会转到主屏幕。我使用下面的代码替换小部件并启动新的导航堆栈:

Navigator.pushReplacement(
    context,
    CupertinoPageRoute(
      builder: (context) => HomeScreen(),
    ),
  );

主屏幕是 CupertinoTabScaffold 和 2 CupertinoTabViews

第二个 CupertinoTabView 包含一个带有注销按钮的小部件。

注销成功后,我想删除 HomeWidget,然后转到 LoginScreen。

正在使用

Navigator.pushReplacement(
    context,
    CupertinoPageRoute(
      builder: (context) => LoginScreen(),
    ),
  );

在第二个 CupertinoTabView 内的 Widget 中仅重置其导航,并且 LoginScreen 出现在第二个 CupertinoTabView.

我想要的是一些代码来删除我的主屏幕并使用登录屏幕启动一个新的导航堆栈。

从FlutterGallery官方源码找到解决方案。这将导航到根目录。

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

Navigator.of(context, rootNavigator: true).pop();