UINavigationBar外观setBackgroundImage隐藏状态栏

时间:2013-12-13 18:19:45

标签: ios uinavigationbar uiappearance

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 个答案:

答案 0 :(得分:3)

我也有这个问题将我的应用程序从iOS 6带到iOS7,我通过这种方式更改代码解决了这个问题:

代替

[UINavigationBar appearance] setBackgroundImage:gradientImage46
                                       forBarMetrics:UIBarMetricsDefault];

我用

-(void) viewWillAppear:(BOOL)animated {

  [self.navigationController.navigationBar setBackgroundImage:gradientImage46 forBarMetrics:UIBarMetricsDefault];
}