从第三层导航控制器返回到原始根视图控制器

Go back to original Root View Controller from a third tier Navigation Controller

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

故事板 A

--> Root Navigation Controller --> Container View Controller --> View Controller --> Home View Controller --> Storyboard B Reference

故事板 B

--> 容器视图控制器 --> 导航控制器 --> 视图控制器 --> Storyboard C 参考

故事板 C

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

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

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

我试过的东西:

[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];