我有一个使用故事板和导航控制器的应用程序。在我的应用程序流程的某个阶段,我在视图堆栈上获得了大约四个视图,此时我必须弹出所有视图,直到到达根视图。之后我需要手动推送另一个视图。
我尝试了各种没有运气的事情。我尝试使用内置 API 调用:
[self.navigationController popToRootViewControllerAnimated:YES];
此时,我尝试通过引用根视图并调用 segue 方法来调用 push segue。
RootView *obj = [[RootView alloc] init];
[obj callSegue];
或者
[self.navigationController performSegueWithIdentifier:@"pushView" sender:self];
无论如何,我完全被这个难住了。任何人都可以帮忙吗?
更新:
谢谢大家的回复。我正在挖掘更多并找到了一个解决方案,我确信这是其中之一。
// Reference to navigation controller. Apparently if you use self.navigationController in a popToRootViewController call it sets self.navigationController to nil.
UINavigationController *navigationController = self.navigationController;
[navigationController popToRootViewControllerAnimated:NO];
// Reference to view to push - must set storyboard ID in inspector
ViewToPush *viewRef = (ViewToPush *)[self.storyboard instantiateViewControllerWithIdentifier:@"gameView"];
[navigationController pushViewController:gameView animated:NO];