例如 我们由A页面跳转到B页面返回时要返回到之前没有创建的C页面。
1、如果先popB 然后再pushC 但是会闪一下。。
2、a的viewControllers,如果给这个viewControllers 取出来添加上新的C,但是B依旧存在,可能传输数据会有影响。
3、现在就用到了我要说的setViewControllers方法,它可以将NavigationController 的跳转路径(堆栈)完全替换。。
有两种情况的例子:
1、B页面返回时要返回到之前没有创建的C页面
- 获取到viewControllers
- 移除所有路径 removeAll()
- 添加新的路径 append(C)
- 将新路径通过setViewControllers方法加到self.navigationController里面
2、A跳转B时,添加新中间页面C
- 获取到viewControllers
- 移除所有路径 removeAll()
- 添加新的路径 append(C) append(B)
- 将新路径通过setViewControllers方法加到self.navigationController里面然后B返回的时候就是C了