最近我已经将我的Xcode IDE更新到最新的iOS 7.1 SDK。出于某种原因,在使用新的Xcode 重新编译我的应用程序后,我得到了这种有线UINavigationBar
背景颜色。
我正在使用storyboard
从主屏幕推送辅助视图控制器。辅助视图控制器是一个静态的设置表,也是使用storyboard
构建的,并在其viewDidLoad
方法中包含以下代码:
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = nil;
我没有对此屏幕或应用中的任何其他屏幕进行任何其他更改。
这是以前的样子:
这就是现在的样子:
有谁知道可能导致这种情况的原因是什么?
干杯,
编辑:@Leo Natan -当我尝试自己设置颜色时,例如,替换此行:
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
这一行:
[self.navigationController.navigationBar setBackgroundColor:[UIColor redColor]];
我明白了:红色只应用在没有状态栏的标题上,我该怎么办?
答案 0 :(得分:1)
最新Xcode附带iOS7.1 SDK,其中Apple再次改变了颜色的计算方式。你必须再次使用你的颜色来在iOS7.1中实现类似的外观。
答案 1 :(得分:1)
也许你应该采取另一种方法。使用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中的外观代理。多数民众赞成我是如何做到的:
//Navigationbar
[[UINavigationBar appearance] setBarTintColor:lightOrangeColor];
[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"navbarAssets-backArrow-iOS7"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"navbarAssets-backArrow-iOS7"]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes: @{NSForegroundColorAttributeName : [UIColor whiteColor]}];