我有 3 个 View Controller 。前 2 个 View Controller 嵌入在 UINavigationController
中,如屏幕截图所示:
起点是 View Controller 1 的 UINavigationController
。然后,我推送到 View Controller 3。但是,我希望它弹出到包含 View Controller 2 的 UINavigationController
的根目录。如何更改导航层次结构?
- 需要保持弹出动画
- 我知道更改 Root View Controller 是一种实现方式,但这在用户体验上会很奇怪
附注为便于说明,此 Storyboard已简化;它们是 View Controller 1、2 和 3 之间的许多 View Controller 。
最佳答案
我最终使用以下代码更改了整个 UINavigationController
层次结构:
// In the View Controller 3's button's `IBAction`:
NSArray *vcs = @[[self.storyboard instantiateViewControllerWithIdentifier:@"NavController1_Identifier"], self];
[self.navigationController setViewControllers:vcs];
[self.navigationController popToRootViewControllerAnimated:YES];
其中 NavController1_Identifier
是第一个 UINavigationController
的 Storyboard标识符。
似乎在这种情况下也可以使用 unwind segue。
关于ios - UINavigationController 弹出到另一个根 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32242484/