0

我遇到了一个问题。一开始是来自 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:

在此处输入图像描述

点击 ob Back 按钮后,它消失了,我再次看到我的导航栏和我的自定义按钮。在 iOS 5.1 中检测到此“错误”,在 iOS 4.3.2 上一切正常。

这让我疯了,请帮助。

PS我知道,我可以使用:

self.navigationController.navigationBar.frame = CGRectMake(0, 20, self.navigationController.navigationBar.frame.size.width, self.navigationController.navigationBar.frame.size.height);

正确显示导航栏,但我需要显示/隐藏导航栏以隐藏它,同时旋转 VideoPlayer。

有任何想法吗?等你的答案,谢谢。

4

2 回答 2

0

因此,经过一些操作后,我决定简单地将 alpha 设置为我的导航栏。

if (SYSTEM_VERSION_LESS_THAN(@"5"))  
            [ptr HideMainNavigationBar];
else self.navigationController.navigationBar.alpha = 0;

我希望它对某人有用。拜拜。

于 2012-08-24T07:33:27.550 回答
-1

我刚刚在 github 上发布了专门用于 UINavigationBar 外观管理的代码。查看RRViewControllerExtension,它将优雅地解决您的问题。

于 2018-09-27T01:15:53.070 回答