如何隐藏/显示自定义导航栏?

Posted

技术标签:

【中文标题】如何隐藏/显示自定义导航栏?【英文标题】:How to hide/show custom navigation bar? 【发布时间】:2012-06-14 07:18:30 【问题描述】:

在我的 ios 应用程序中,我使用自定义 NavigationItem(从 Nib 文件添加到根视图)。默认NavigationItem我可以使用

[self.navigationController setNavigationBarHidden:YES animated:YES];

隐藏它们,但我没有找到任何方法来隐藏我的自定义 NavigationItemremoveFromSuperview,有人可以给我一些指点吗?

提前致谢!

【问题讨论】:

使用[self.navigationController setNavigationBarHidden:YES animated:YES];you 隐藏完整的导航栏,而不仅仅是导航项。据我了解,您将 navitem 添加为子视图。您必须保留对 uiview 的某种引用,例如。使用属性或标签,然后删除/隐藏 navItem。 感谢您的及时响应,是的,我的根视图中有一个 NavigationBar,然后是我的自定义 NavigationItem。我只是尝试添加对 NavigationBar 的引用并将 setHidden:YES 发送给它,NavigationBar 确实消失了,但仍然占用了垂直空间。有什么我错过的吗? 正如隐藏这个词所暗示的那样,它只是隐藏了导航栏 - > 不可见但仍然存在。我不确定是否可行,但您可以尝试使用其框架属性移动导航栏。 哦,是的,我可以将其他视图向上移动以填充空间。非常感谢!!! 【参考方案1】:

使用[self.navigationController setNavigationBarHidden:YES animated:YES]; 可以隐藏整个导航栏,而不仅仅是navItem。据我了解,您将navitem 添加为子视图。您必须保留对UIVview 的某种引用,例如。带有属性或标签,然后删除/隐藏navItem

由于您只是隐藏了导航栏,因此它仍然存在。因此,您可以使用它们的 frame 属性移动视图。

所以我猜你移动内容视图并完全跳过隐藏/删除就足够了。

【讨论】:

【参考方案2】:

您应该为您的导航项创建出口,并且您可以通过自己编写代码来设置动画/隐藏

【讨论】:

以上是关于如何隐藏/显示自定义导航栏?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的自定义导航控制器中隐藏标签栏?

iPhone:在导航栏下隐藏自定义视图

自定义导航栏隐藏按钮

iOS 自定义导航栏笔记

iOS 导航栏-返回按钮-自定义

如何在 Swift 的导航栏顶部显示自定义视图?