APP开发的过程中会遇到跳转问题,我们大部分是调回到上一个页面,可所有时候也会遇到跳转到指定页面的需求,苹果给我们提供了几种跳转方式
1.退出到跟视图控制器
popToRootViewControllerAnimated:(BOOL)animated;
2.返回到上个页面
popViewControllerAnimated:(BOOL)animated;
3.返回到指定位置
popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
但是当我们直接用这个方法的时候会导致程序崩溃,提示
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.
推出的视图控制器不存在,那我们应该怎么做呢,问题是压入栈了,我们可以去栈内找
for (UIViewController *controller in self.navigationController.viewControllers) {
if ([controller isKindOfClass:[TXHMessageController class]]) {
TXHMessageController *messageVC =(TXHMessageController *)controller;
[self.navigationController popToViewController:messageVC animated:YES];
}else{
[self popToPreviousView];
}
}