大家都知道導航控制器中的返回按鈕,會返回到上一個頁面,但有時項目中有特殊要求,需要返回到指定的頁面,我是這么實現的。
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];
}
這樣就可以直接返回到指定頁面了,希望可以幫助到大家。