在ios 跳转中 跳转下一页面并关闭当前页面

有时候我们希望在controller中跳转到下一个页面, 并且关闭当前页面, 那么下面的方法就是通过改变navigation的contollers 实现了该功能: 

先把整体代码贴下,后面是详细的分布介绍,不想看可以略过

-(void)jumpViewControllerAndCloseSelf:(UIViewController *)vc{

    NSArray *viewControlles = self.navigationController.viewControllers;

    NSMutableArray *newviewControlles = [NSMutableArray array];

    if ([viewControlles count] > 0) {

        for (int i=0; i < [viewControlles count]-1; i++) {

            [newviewControlles addObject:[viewControlles objectAtIndex:i]];

        }

    }

    [newviewControlles addObject:vc];

    [self.navigationController setViewControllers:newviewControlles animated:YES];

}

1, 首先获取当前navigationController的viewControllers

NSArray *viewControlles = self.navigationController.viewControllers;

2, 新建一个新的数组,来放新的viewControlles:

NSMutableArray *newviewControlles = [NSMutableArray array];

3,将viewControlles的viewController 逐个放到newviewControlles, 但是最后一个不要放进去

if ([viewControlles count] > 0) {

        for (int i=0; i < [viewControlles count]-1; i++) {

            [newviewControlles addObject:[viewControlles objectAtIndex:i]];

        }

    }

4,将新的controller放进newviewControlles

[newviewControlles addObject:vc];

5, 重新设置navigationController的viewControllers

[self.navigationController setViewControllers:newviewControlles animated:YES];

你可能感兴趣的:(在ios 跳转中 跳转下一页面并关闭当前页面)