关于iOS 返回功能有几种情况,这里只说navigation的前提下
- 返回按钮
- 点击返回按钮,默认返回上一级控制器
[self.navigationController popViewControllerAnimated:YES];
- 点击返回按钮,返回到指定控制器
for (UIViewController *controller in self.navigationController.viewControllers) {
if (controller isKindOfClass:[XXViewController Class]) {
[self.navigationController popToViewController:controller animated:YES];
return;
}
}
- 点击返回按钮,返回到根控制器
[self.navigationController popToRootViewControllerAnimated:YES];
- 滑动返回到指定控制器
因为滑动返回默认是返回到上一级控制器,想要返回到指定控制器,要么关闭滑动返回手势
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
要么把没用的控制器移除,把需要返回的控制器变成上一级
for (UIViewController* controller in self.navigationController.viewControllers) {
if ([controller isKindOfClass:[AAAViewController Class]]) {
[controller removeFromParentViewController];
}
if ([controller isKindOfClass:[BBBViewController Class]]) {
[controller removeFromParentViewController];
}
}
这是在滑动返回,上一级就变成了我们需要返回的页面了