我有一个带有 LoginScreen 的应用程序,在成功登录后会转到 HomeScreen。我使用下面的代码替换小部件并启动新的导航堆栈:
Navigator.pushReplacement(
context,
CupertinoPageRoute(
builder: (context) => HomeScreen(),
),
);
HomeScreen 是一个带有 2 个 CupertinoTabViews
的 CupertinoTabScaffold
。
第二个 CupertinoTabView
包含一个带有注销按钮的小部件。
成功注销后,我想删除 HomeWidget,然后转到 LoginScreen。
使用
Navigator.pushReplacement(
context,
CupertinoPageRoute(
builder: (context) => LoginScreen(),
),
);
在第二个 CupertinoTabView
内的 Widget 中仅重置其导航,并且 LoginScreen 出现在第二个 CupertinoTabView
内。
我想要的是一些代码来删除我的 HomeScreen 并使用 LoginScreen 启动一个新的导航堆栈。
最佳答案
从 FlutterGallery 官方源码中找到解决方案。这将导航到根目录。
Navigator.of(context, rootNavigator: true).pop();
关于flutter - 从 CupertinoTabScaffold 导航出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57074706/