【发布时间】:2014-02-05 11:05:11
【问题描述】:
从应用程序调用:willFinishLaunchingWithOptions:
+(void)styleNavbar {
[[UIBarButtonItem appearance] setTintColor:[UIColor colorWithRed:45/255.0 green:48/255.0 blue:53/255.0 alpha:1]];
[[UIBarButtonItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor whiteColor], UITextAttributeTextShadowColor:[UIColor blackColor], UITextAttributeTextShadowOffset: [NSValue valueWithCGSize:CGSizeMake(0,1.0)]} forState:UIControlStateNormal];
[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:22/255.0 green:24/255.0 blue:26/255.0 alpha:1]];
}
我现在尝试在视图控制器中使用与我的一个故事板不同的配色方案。
我已经能够为导航栏和普通按钮设置色调。
在我的 -viewDidLoad 中:
[self.navigationController.navigationBar setTintColor:[MyColorScheme sharedInstance].lightBlueColor];
[self.navigationItem.rightBarButtonItem setTintColor:[MyColorScheme sharedInstance].lightBlueColor];
但是我正在努力对继续使用全局颜色方案的后退按钮做同样的事情,除非我注释掉 +styleNavbar 行。我没有成功尝试:
[self.navigationController.navigationBar.backItem.backBarButtonItem setTintColor:[MyColorScheme sharedInstance].lightBlueColor];
[self.navigationItem.backBarButtonItem setTintColor:[MyColorScheme sharedInstance].lightBlueColor];
[self.navigationItem.leftBarButtonItem setTintColor:[MyColorScheme sharedInstance].lightBlueColor];
[[UIBarButtonItem appearanceWhenContainedIn:[MySpecificViewController class], nil] setTintColor:[MyColorScheme sharedInstance].lightBlueColor];
运行上述所有行似乎不会覆盖后退按钮的色调,即使我可以使用相同的方法设置其他导航栏元素的样式。是否可以在使用应用程序范围的外观代理设置后退按钮的颜色后为其设置样式?
【问题讨论】:
标签: ios uibarbuttonitem