UINavigationBar 外观 setBackgroundImage 隐藏状态栏
Posted
技术标签:
【中文标题】UINavigationBar 外观 setBackgroundImage 隐藏状态栏【英文标题】:UINavigationBar appearance setBackgroundImage Hides Status Bar 【发布时间】:2013-12-13 18:19:44 【问题描述】:UIImage *gradientImage46 = [[UIImage imageNamed:@"navbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[UINavigationBar appearance] setBackgroundImage:gradientImage46
forBarMetrics:UIBarMetricsDefault];
我正在使用它来自定义我的应用中导航栏的外观。但是,这会导致状态栏一直显示为黑色,什么也没有显示...时间、运营商、电池等。这是一个错误,还是我实现的不正确?
我使用 MainWindow.xib 方法在选项卡栏中运行此界面。第一个选项卡只是一个导航控制器,里面有一个视图控制器。另一个选项卡是一个导航控制器,里面有一个 TableView 控制器。如果我从一个选项卡转到表格视图,然后返回,就会出现状态栏。
navbar.png 为 320 x 44 像素。
【问题讨论】:
【参考方案1】:将我的应用程序从 ios 6 升级到 iOS7 时,我也遇到了这个问题,我通过以下方式更改代码解决了:
改为
[UINavigationBar appearance] setBackgroundImage:gradientImage46
forBarMetrics:UIBarMetricsDefault];
我用
-(void) viewWillAppear:(BOOL)animated
[self.navigationController.navigationBar setBackgroundImage:gradientImage46 forBarMetrics:UIBarMetricsDefault];
【讨论】:
这行得通,只是希望我知道为什么它在视图控制器引用另一个 NIB 时有效,但如果视图构建在同一个接口内则不行。以上是关于UINavigationBar 外观 setBackgroundImage 隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章
自定义 UINavigationBar 外观以在 CNContactPickerViewController 中显示