如何隐藏/显示自定义导航栏?
Posted
技术标签:
【中文标题】如何隐藏/显示自定义导航栏?【英文标题】:How to hide/show custom navigation bar? 【发布时间】:2012-06-14 07:18:30 【问题描述】:在我的 ios 应用程序中,我使用自定义 NavigationItem
(从 Nib 文件添加到根视图)。默认NavigationItem
我可以使用
[self.navigationController setNavigationBarHidden:YES animated:YES];
隐藏它们,但我没有找到任何方法来隐藏我的自定义 NavigationItem
或 removeFromSuperview
,有人可以给我一些指点吗?
提前致谢!
【问题讨论】:
使用[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】:您应该为您的导航项创建出口,并且您可以通过自己编写代码来设置动画/隐藏
【讨论】:
以上是关于如何隐藏/显示自定义导航栏?的主要内容,如果未能解决你的问题,请参考以下文章