首页 > 如何让栈中的页面总是返回到固定页面?

如何让栈中的页面总是返回到固定页面?

项目中,有很多途径进入到我的订单中.如:

  1. 我(顶级页面)->我的订单

  2. 首页(顶级页面)->商品详情->支付->支付成功->我的订单.

但是需求是,从我的订单只能返回到的页面.即:

我的订单 -(back)->我

在这种需求下,如何来实现呢?


方法一:

//回到根视图
navigationController?.popToRootViewControllerAnimated(animated: Bool)

方法二:

//回到指定视图
navigationController?.popToViewController(UIViewController, animated: Bool)


模态 要么整个伪导航


下面提供一个思路,可以根据自己的项目情况进行修改

假定你的项目是如图所示的架构。则可以在订单界面添加下面的代码。



- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    UINavigationController *nav = self.tabBarController.viewControllers.lastObject;
    NSMutableArray *vcs = [NSMutableArray array];
    [vcs addObject:nav.viewControllers.firstObject];
    [vcs addObject:self];
    [nav setViewControllers:vcs animated:NO];
    [self.tabBarController setSelectedIndex:self.tabBarController.viewControllers.count-1];
}
【热门文章】
【热门文章】