UINavigationController

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方法返回的到列表界面,就会一级一级弹出,会在弹出编辑界面之后才返回到列表界面,影响用户体验。

解决方案:

使用NavigationControllersetViewControllers方法来调整controller的顺序

NSMutableArray * viewControllers = [self.navigationController.viewControllers mutableCopy];
                    [viewControllers removeLastObject];
                    [viewControllers addObject:controller];
                    [self.navigationController setViewControllers:viewControllers animated:YES];
原文地址:https://www.cnblogs.com/coolwxb/p/UINavigationController.html