隐藏导航栏、显示导航栏
Posted
技术标签:
【中文标题】隐藏导航栏、显示导航栏【英文标题】:Hide navigationBar, Show navigationBar 【发布时间】:2012-08-23 14:25:16 【问题描述】:我遇到了一个问题。一开始是来自 AppDelegate 的一些代码。
- (void)HideMainNavigationBar
navigCtrl.navigationBarHidden = YES;
- (void)ShowMainNavigationBar
navigCtrl.navigationBarHidden = NO;
navigCtrl 是我的导航控制器。 在我的另一个视图控制器中,我需要隐藏我的导航栏,然后显示它,以正确显示它。
- (void) moviePlayerWillExitFullScreen:(id)sender
NSLog(@"exitfullscreen");
AppDelegate *ptr = [AppDelegate SharedAppDelegate];
[ptr HideMainNavigationBar];
[ptr ShowMainNavigationBar];
在那之后,我看到了返回按钮,而不是我的自定义 tabBarButton:
点击后退按钮后,它消失了,我再次看到我的导航栏和我的自定义按钮。在 ios 5.1 中检测到此“错误”,在 iOS 4.3.2 上一切正常。
这让我发疯了,请帮忙。
附:我知道,我可以使用:
self.navigationController.navigationBar.frame = CGRectMake(0, 20, self.navigationController.navigationBar.frame.size.width, self.navigationController.navigationBar.frame.size.height);
要正确显示导航栏,但我需要在旋转 VideoPlayer 时显示/隐藏导航栏以隐藏它。
有什么想法吗? 等待您的答复,谢谢。
【问题讨论】:
如果一定要一直隐藏,有没有尝试在 viewWillAppear 中隐藏? moviePlayer全屏时必须隐藏,因为我在旋转时看到它。 【参考方案1】:因此,经过一些操作后,我决定简单地将 alpha 设置为我的导航栏。
if (SYSTEM_VERSION_LESS_THAN(@"5"))
[ptr HideMainNavigationBar];
else self.navigationController.navigationBar.alpha = 0;
我希望它对某人有用。再见。
【讨论】:
【参考方案2】:我刚刚在 github 上发布了专门用于 UINavigationBar 外观管理的代码。查看RRViewControllerExtension,它将优雅地解决您的问题。
【讨论】:
以上是关于隐藏导航栏、显示导航栏的主要内容,如果未能解决你的问题,请参考以下文章