我有一些故事板设置,如下所示:

故事板

->根导航控制器->容器视图控制器->视图控制器->主页视图控制器->故事板B参考

故事板B

->容器视图控制器->导航控制器->视图控制器->故事板C参考

故事板C

->导航控制器->视图控制器

要点是,我加载了应用程序并设置了rootViewController。然后,我浏览该应用程序并结束于Storyboard B,其中包含一个将我带到Storyboard C的按钮。在View Controller中的Storyboard C上,有一个按钮我想带我回到应用程序的开始。

如何从View Controller中的Storyboard C返回到Home View Controller中的Storyboard A

我尝试过的事情:

[self.navigationController.navigationController popViewControllerAnimated:animated];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"HomeScreen"];
[self presentViewController:viewController animated:animated completion:nil];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"HomeScreen"];
[UIApplication sharedApplication].keyWindow.rootViewController = viewController;

上面的3个都回到正确的位置,但是应用程序崩溃并显示EXC_I386_GPFLT

我还尝试了其他一些无效的方法。我知道这可能很简单,我今天过得很糟糕。任何建议现在都将不胜感激。

最佳答案

我似乎已经通过在主线程上执行popViewControllerAnimated:方法解决了它:

[self.navigationController.navigationController performSelectorOnMainThread:@selector(popViewControllerAnimated:) withObject:nil waitUntilDone:nil];

关于ios - 从第三层导航 Controller 返回到原始的Root View Controller,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34741116/

10-12 13:26