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];