使用 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;
}
}
我正在使用像这样的基本操作来推送到视图。
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;
}
}