在我正在构建的应用程序中,我希望能够从最后一个"查看控制器启动时使用的视图控制器。做这个的最好方式是什么?我非常喜欢以下功能:
[self.navigationController popToViewController:originalVC animated:YES];
然而,在这种情况下似乎不起作用,因为原始VC未包含在导航控制器中。当我使用时:
[self presentViewController:launchVC animated:YES completion:nil];
该应用程序只显示黑屏死机。
感谢。
答案 0 :(得分:1)
NSArray *viewControllers = self.navigationController.viewControllers;
UIViewController *originalViewController = viewControllers[0];
[self.navigationController setViewControllers:@[originalViewController] animated:YES];
<强>更新强>
抱歉,我误解了你的问题。正确答案是:
UIViewController *originalViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"originalViewControllerStoryboardId"];
UIWindow *window = [UIApplication sharedApplication].keyWindow;
window.rootViewController = originalViewController;
答案 1 :(得分:1)
你可以通过展开segue来做到这一点。只需在初始控制器中创建一个方法,该方法是一个带有UIStoryboardSegue参数的IBAction,然后将最后一个控制器(或按钮或单元格之类的UI元素)连接到退出图标,然后选择您在初始控制器。这会将您带回到您开始使用的初始控制器的同一个实例,并且中间的所有控制器都将被释放(如果您在初始控制器中没有任何强指针)。