I pushed four screens ScreenOne >> ScreenTwo >> ScreenThree >> ScreenFour

我现在ScreenFour岁了,我想回到ScreenTwo

在Swift中,它的工作原理如下:

if let viewControllers: [UIViewController] = self.navigationController!.viewControllers {
    for vc in viewControllers
    {
        if (vc is SecondViewController)
        {
            self.navigationController!.popToViewController(vc, animated: true)
        }
    }
}

我是如何在Flutter 中执行这个操作的.

请给出一个解决方案,Thank you.

推荐答案

如果没有在MaterialApp中定义任何路由,则需要在推送时定义.

Navigator.of(context).push(
    MaterialPageRoute(builder: (_) {
      return SecondPage();
    },
      settings: RouteSettings(name: 'SecondPage',),
    ));

您需要定义相同的路径名称

Navigator.of(context).popUntil((route){
  return route.settings.name == 'SecondPage';
}); 

Dart相关问答推荐

polymer.dart 中的@observable 和@published 有什么区别?

如何在Flutter中制作视频缩略图?

Flutter android 生成apk

如何在Flatter中zoom 两个谷歌 map 标记

Flutter 扩展方法不起作用,它说undefined class和requires the extension-methods language feature

访问用户环境变量

如何在flatter中使用SQFlite更新数据库表

如何在flatter中读取本地json导入?

Flutter判断变量是否为 NaN

无法使用 Flutter 调用 Localhost,将随机端口分配给 HTTP GET 调用

为什么 Angular 在组件名称中不需要破折号

Dart:打印整数和字符串

什么是健全的编程语言?

从 Dart Map 中删除选定的键

方法级联如何在 dart 中准确工作?

Dart 的输出是什么样的?

如何在 Dart SDK 0.4+ 中使用 setInterval/setTimeout

dart中的动态和对象有什么区别?

dart 折叠(Fold)与减少(Reduce)

如何在 Dart 中克​​隆对象(深拷贝)?