我想更改UINvaigationBar的背景颜色,我使用了tintColor属性,但它没有改变颜色。您可以查看以下代码。
在我的Appdelegate中,我创建了一个UITabBarController
tabbar = [[UITabBarController alloc] init];
然后我创建一个UINavigationController并将我的UITableViewController附加到它
UINavigationController *myNavigation = [[UINavigationController alloc] initWithRootViewController:myViewController];
然后将UINavigationControllers连接到我的tabbar,就像这样
[tabbar setViewControllers:viewControllers]; //viewControllers is an array of UINavigationControllers
我尝试在myAppdelegate中设置属性tintColor,就像这样
[[myNavigation navigationBar] setTintColor:[UIColor redColor]];
但是这没有按预期工作,所以我在我的ViewController
中尝试了相同的操作 - (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController.navigationBar setTintColor:[UIColor blackColor]];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationItem.title = @"Test";
}
仍然没有任何反应。请查看下面的图片,了解导航栏的外观。
感谢您的帮助。
干杯 壶
答案 0 :(得分:1)
作为一种解决方法,你可以在色彩的地方使用图像,请查看以下代码。
if ([myNavigation respondsToSelector:@selector(setBackgroundImage:forToolbarPosition:barMetrics:)]) {
[myNavigation setBackgroundImage:[UIImage imageNamed:BAR_IMAGE_NAME] forbarMetrics:UIBarMetricsDefault];
}else {
[myNavigation insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:BAR_IMAGE_NAME]] autorelease] atIndex:0];
}