你好,我正在开发一款应用程序,需要进行以下操作:
- 从
UIViewController
1 跳转到UIViewController
2 - 从
UIViewController
2 跳转到UIViewController
3 - 从
UIViewController
3 跳转到UIViewController
4 - 从
UIViewController
4 返回到UIViewController
2
我使用的是 UINavigationController
。当我使用 [self.navigationController pushViewController:VC2 animated:NO];
和 [self.navigationController popViewControllerAnimated:NO];
时,一切正常工作。
但当我从 UIViewController
4 使用 [self.navigationController popToViewController:VC2 animated:NO];
时,应用程序会终止,并显示错误信息:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.'
以下是我如何弹出 UIViewController
2 的代码
for (UIViewController *vc in self.navigationController.viewControllers) {
if ([vc isKindOfClass:[ViewController2 class]]) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
ViewController2 *VC2 = [storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
[self.navigationController popToViewController:VC2 animated:NO];
}
}
当我打印导航数组时,它显示堆栈中的UIViewController2。 我从编辑器中添加了UINavigationController->嵌入->导航控制器。
请问有谁能告诉我为什么会发生这种情况?我尝试搜索这个问题,但没有找到有用的信息。