我如何在抖动中弹出特定屏幕

时间:2019-12-06 12:06:20

标签: ios swift flutter dart uinavigationcontroller

我推了四个屏幕   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)
        }
    }
}

我如何在颤抖中执行此操作。

请提供解决方案,谢谢

4 个答案:

答案 0 :(得分:2)

我相信这将是Navigator.popUntil方法。

您需要在materialApp中定义您的路线,以便Navigator识别。为了使下面的代码正常工作,需要在我的MaterialApp中定义“ / home”。

Navigator.popUntil(context, ModalRoute.withName('/home'));

答案 1 :(得分:2)

如果您不想使用命名路由,那么只需使用-- pushAndRemoveUntil

示例--

Navigator.pushAndRemoveUntil(context, MaterialPageRoute(
                          builder: (context) => MyHomePage()), (route) => false);

答案 2 :(得分:0)

尝试pushNamedAndRemoveUntil

        Navigator.of(context).pushNamedAndRemoveUntil(
            '/BottomNavigation', (Route<dynamic> route) => false);

要深入阅读,请遵循this

答案 3 :(得分:0)

如果您未在MaterialApp中定义任何路线,则需要在推送时进行定义。

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

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

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