iOS有关pop到self.navigationController.viewControllers以外的界面

今天在编写项目时,遇到一个难题,就是pop出栈的问题,现在的场景是这样:如图 ↓ ,而遇到的问题则是当返回到商品详情/订单详情是,固定死的返回到对应额商品包/订单列表页面,那么,如果是从商品包点击push压栈到支付成功页面,那么点击完成是要跳到订单详情页面,而在订单详情页面中点击左上角的返回要返回至订单列表,那么,用之前发表过的pop出栈,则不可用了,因为从我的首页到购买成功,压栈的栈数组中,并没有包含订单详情页面,也就是说此类问题就是pop到界面栈数组以外的界面中去,如何实现。



    遇到这种问题,因为考虑到都是从我的首页进入,那么只需要在订单列表商品包中的返回方法里面实现返回到栈底就好了。

[self.navigationController popToRootViewControllerAnimated:YES];

问题的重点就在于,如何在详情中实现返回至商品包页面/订单列表页面

以下是我的设计想法

#pragma mark -- 返回按钮点击
- (void)theBackBtnClick:(UIButton*)sender

{
    
    
    NSArray* viewArr = self.navigationController.viewControllers;
    if(viewArr[1] == [YGMyOrderVCViewController class]){
        //说明是从我的订单里面进来的则返回至上层
        [self.navigationController popViewControllerAnimated:YES];
    }else{
        //是从其他地方进入到商品详情,此时也要返回到我的订单里面,但是不管从哪里进来的,都是从我的首页进来的,因此栈顶肯定为我的首页
        NSMutableArray *pageArray = [self.navigationController.viewControllers mutableCopy];
        YGMyOrderVCViewController *insert = [[YGMyOrderVCViewController alloc] init];
        //插入界面栈
        [pageArray insertObject:insert atIndex: 1];
        [self.navigationController setViewControllers:pageArray animated:NO];
        
        
        insert.hidesBottomBarWhenPushed = YES;
        [self.navigationController popToViewController:insert animated:YES];
        
    }
    
}


这样就可以解决问题。


有更好见解的,欢迎来探讨。
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值