UINavigationController 在 iOS7 中使用自定义转换委托隐藏导航栏

Posted

技术标签:

【中文标题】UINavigationController 在 iOS7 中使用自定义转换委托隐藏导航栏【英文标题】:UINavigationController hiding navbar with custom transition delegate in iOS7 【发布时间】:2014-03-31 15:48:52 【问题描述】:

我有一个带有两个视图控制器的 UINavigationViewController。根视图控制器需要隐藏导航栏,而在第二个视图控制器中,导航栏是可见的。

我使用 UIViewControllerAnimatedTransitioning 实现了自定义过渡

当我推动第二个视图时,一切都很好。但是,当我弹出视图并返回根时,根控制器框架中有一个跳转。它的动画就像它有一个导航栏一样,当动画完成时,框架会重新调整为全屏。

这样做的正确方法是什么?默认过渡不显示此问题。

【问题讨论】:

【参考方案1】:

两种简单的修复方法:

    从导航控制器中完全隐藏导航栏,并将自定义导航栏添加到第一个屏幕,独立于导航控制器。

    只让第一个屏幕在导航控制器中,并创建到第二个屏幕的自定义过渡,不使用导航控制器的推送,而是自己实现推送动画。

【讨论】:

谢谢。我开始考虑这些选项。只是想确保我不会错过没有他们的方法。

以上是关于UINavigationController 在 iOS7 中使用自定义转换委托隐藏导航栏的主要内容,如果未能解决你的问题,请参考以下文章

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

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

(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换

关闭 UINavigationController 并呈现另一个 UINavigationController

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

UINavigationController 标题和按钮