push之后移除当前控制器

push之后移除当前控制器

应用场景

做题页面交卷之后,跳转至答题报告页面。此时为了防止从报告页面返回值做题页面,需要移除做题页面。

过程

简书怎么回事呀?不支持流程图

graph LR
A -- push --> B 
B -- push --> C
C -- pop --> A

具体操作

跳转过去之后,将当前控制器从navigationController的push栈中移除

由于无法直接对navigationController. viewControllers进行remove操作

所以可以根据push栈创建一个临时Array,将当前控制器中移除

然后再将临时Array重新赋值给navigationController. viewControllers

下面的例子只保留了rootViewController

    ZHTikuBrushPlanSecondSectionViewController *vc = [ZHTikuBrushPlanSecondSectionViewController new];
    vc.subjectId = [ZHTikuBrushPlanTool shareTool].subjectId;
    UIViewController *rootVC = currentViewController.navigationController. viewControllers.firstObject;
    [rootVC.navigationController pushViewController:vc animated:YES];
    NSMutableArray *tempArray = [NSMutableArray arrayWithObject:rootVC];
    [tempArray addObject:vc];
    [currentViewController.navigationController setViewControllers:tempArray animated:YES];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容