11

当我更新到 Xcode 5 时,我花了几个月的时间为 iOS 6 开发应用程序。当我决定在 iOS 6.1 上再次运行应用程序时,我更新了应用程序以适应 iOS 7 风格。我发现我之前黑色的导航栏变成了白色。

我将我的故事板切换为“iOS 6.1 及更早版本”,发现导航栏的颜色是白色,即使在模拟指标中它被设置为“不透明的黑色导航栏”。

有想法该怎么解决这个吗?我已经尝试手动将子视图顶部栏设置为“不透明黑色导航栏”。这会将子导航栏的颜色更改为在情节提要上显示为黑色,但在模拟器上运行时对应用程序没有影响。

4

4 回答 4

15

看起来我需要做的是检查设备运行的版本是否低于 iOS 7,然后设置

[[[self navigationController] navigationBar] setTintColor:[UIColor blackColor]];
于 2013-09-28T13:36:18.273 回答
13

为了设置导航栏的颜色,我做了以下事情:

if([self.navigationController.navigationBar respondsToSelector:@selector(barTintColor)])
{
    // iOS7
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:236.0/255.0 green:139.0/255.0 blue:23.0/255.0 alpha:1.0];
}
else
{
    // older
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:236.0/255.0 green:139.0/255.0 blue:23.0/255.0 alpha:1.0];
}

希望有人会发现它有帮助...

于 2013-10-11T21:39:24.760 回答
0

UIBarStyleBlackOpaque已弃用。

改为使用UIBarStyleBlack

或者,在 iOS 7 中,您可以将barTintColor属性设置为黑色。

于 2013-09-27T21:54:06.410 回答
0

适用于:- iOS 7

// set tint color in io s6
[[[self navigationController] navigationBar] setBarTintColor:[UIColor blackColor]];

适用于:- iOS 7

// set translucent property to NO in iOS 7 
self.navigationController.navigationBar.translucent=NO;
// set Bar tint color 
[[[self navigationController] navigationBar] setTintColor:[UIColor blackColor]];
// But I would recommend Use Images instead of color.

对于 iOS 6:- 320 X 44 大小的图像
对于 iOS 7:- 320 X 64 大小的图像

于 2013-10-08T05:59:22.870 回答