我推了四个屏幕 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)
}
}
}
我如何在颤抖中执行此操作。
请提供解决方案,谢谢。
答案 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';
});