title: UINavigationController 相关知识
date: 2016-1-23 15:07
categories: IOS
tags: UINavigationController
小小程序猿
我的博客:http://daycoding.com
UINavigationController 调整controller的顺序
业务场景:
有时候我们需要调整UINavigationController中controller的顺序,但是单独靠
objc
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
- (nullable UIViewController *)popViewControllerAnimated:(BOOL)animated
并不能满足我们的需要。
比如:在一个列表界面,创建新信息进入编辑界面,成功后在进入展示界面,这时如果我们通过popController
方法返回的到列表界面,就会一级一级弹出,会在弹出编辑界面之后才返回到列表界面,影响用户体验。
解决方案:
使用NavigationController
的setViewControllers
方法来调整controller的顺序
NSMutableArray * viewControllers = [self.navigationController.viewControllers mutableCopy];
[viewControllers removeLastObject];
[viewControllers addObject:controller];
[self.navigationController setViewControllers:viewControllers animated:YES];