大家都知道导航控制器中的返回按钮,会返回到上一个页面,但有时项目中有特殊要求,需要返回到指定的页面,我是这么实现的。

    1、

    首先是监听这个返回按钮的方法,我是通过自定义返回按钮监听的。

//    自定义返回按钮

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"back-1x"] style:(UIBarButtonItemStyleDone) target:self action:@selector(backBtn)];


    2、

    然后遍历导航控制器中的控制器,当遍历到需要返回到指定页面的控制器时候,直接break,重新添加到导航控制器中,就是这个思路,下面贴上代码。

#pragma mark - 点击返回按钮,回到指定页面

- (void)backBtn

{

    UINavigationController *navigationVC = self.navigationController;

    NSMutableArray *viewControllers = [[NSMutableArray alloc] init];

//遍历导航控制器中的控制器

    for (UIViewController *vc in navigationVC.viewControllers) {

        [viewControllers addObject:vc];

// CourseTableController就是你需要返回到指定的控制器名称,这里我需要跳转到CourseTableController这个控制器

        if ([vc isKindOfClass:[CourseTableController class]]) {

            break;

        }

    }

//    把控制器重新添加到导航控制器

    [navigationVC setViewControllers:viewControllers animated:YES];

    [navigationVC popViewControllerAnimated:YES];

}