从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController

Posted

技术标签:

【中文标题】从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController【英文标题】:Segue from one view controller embedded within UINavigationController to another UINavigationController 【发布时间】:2016-03-27 14:15:24 【问题描述】:

我有一个 UINavigationController 作为我的根控制器,但随后我从一个视图控制器切换到另一个 UINavigationController

但是当从一个嵌入在 UINavigationController 中的视图控制器到另一个 UINavigationController 时,push segue 来自底部,假设它是作为弹出窗口进行的。我尝试使用显示细节segue,但仍然没有运气。

为什么会发生这种情况,我如何使用 push/replace segue 从一个到另一个 segue ?

PS:发生这种情况是因为 UINavigationControllers 冲突并将 segue 覆盖为 popover 吗?我使用两个单独的导航控制器的原因是因为前一个视图的样式覆盖了详细视图的样式,我发布了一个关于 Cannot change style of UINavigationBar when using scrollViewDidScroll on separate View Controller

的单独问题

【问题讨论】:

您可能不应该将UINavigationController 推到另一个UINavigationController 上。 UINavigationController 的全部意义在于您只需要 一个 来管理它包含的所有视图控制器。 【参考方案1】:

Push segue 只发生在一个导航控制器中。这就是它实现“show”类型segue的方式。从导航控制器到另一个导航控制器的“显示”连接并不是 Xcode 绘图工具所认为的“推送”。它默认将其解释为弹出框。

【讨论】:

以上是关于从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章

从模态视图或推送视图调用父方法到presentingViewController

UINavigationController

UINavigationController 风格

全屏显示 ViewController

多控制器

我应该在哪里创建和呈现整个 iPhone 应用程序中使用的模态 ViewController