我有 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 。
Best Answer-推荐答案 strong>
我最终使用以下代码更改了整个 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/
|