使用 popToViewController 返回到黑屏的特定视图控制器时出现问题

Problems with using popToViewController to go back to a specific view controller going to black screen

我正在使用像这样的基本操作来推送到视图。

UIStoryboard *storyboard = self.navigationController.storyboard;

MenuViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"menuViewController"];

[self.navigationController pushViewController:viewController animated:YES];

一些我可以简单使用的地方:

[self.navigationController popViewControllerAnimated:YES];

但在一些地方我想弹出到特定的视图控制器。我试过的是:

UIStoryboard *storyboard = self.navigationController.storyboard;

RecordMenuViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"recordMenuViewController"];

[self.navigationController popToViewController:viewController animated:YES];

但它只是进入黑屏,例如视图不在堆栈中之类的。我在这里错过了什么?

如果您想使用导航堆栈弹出到特定的视图控制器,请执行以下操作:

NSArray* vcs = self.navigationController.viewControllers;
UIViewController* target = [vcs objectAtIndex:([vcs count] - 1) - numVCsToGoBack];
[self.navigationController popToViewController:target];

如果您必须弹出到堆栈中的特定视图控制器,请使用以下代码:

(这里考虑你必须弹出到 MyViewController Class)

for (UIViewController *controller in self.navigationController.viewControllers)
{
     if ([controller isKindOfClass:[MyViewController class]])
     {
       [navigationController popToViewController:controller animated:YES];
       break;
     }
 }