UIImage *gradientImage46 = [[UIImage imageNamed:@"navbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[UINavigationBar appearance] setBackgroundImage:gradientImage46
forBarMetrics:UIBarMetricsDefault];
我使用它来自定义应用程序中导航栏的外观。但是,这会导致状态栏呈纯黑色,不显示任何内容...时间、运营商、电池等。这是一个错误,还是我实现的方法不正确?
我使用 MainWindow.xib 接口(interface)方法在选项卡栏中运行它。第一个选项卡只是一个导航 Controller ,其中包含一个 View Controller 。另一个选项卡是一个导航 Controller ,里面有一个 TableView Controller 。如果我从一个选项卡转到表格 View ,然后再返回,就会出现状态栏。
navbar.png 为 320 x 44 像素。
最佳答案
我也遇到了将我的应用程序从 iOS 6 带到 iOS7 的问题,我通过以下方式更改代码解决了这个问题:
相反
[UINavigationBar appearance] setBackgroundImage:gradientImage46
forBarMetrics:UIBarMetricsDefault];
我用
-(void) viewWillAppear:(BOOL)animated {
[self.navigationController.navigationBar setBackgroundImage:gradientImage46 forBarMetrics:UIBarMetricsDefault];
}
关于ios - UINavigationBar 外观 setBackgroundImage 隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573318/