大家都知道导航控制器中的返回按钮,会返回到上一个页面,但有时项目中有特殊要求,需要返回到指定的页面,我是这么实现的。 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]; }