繁体   English   中英

设置特定视图控制器ios6的UIBarButtonItem的颜色

[英]set tint color of an UIBarButtonItem for a specific view controller ios6

从应用程序调用: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];

即使可以使用同一方法设置其他导航栏元素的样式,运行以上所有行似乎都不会覆盖后退按钮的色彩。 使用应用程序广泛外观代理设置后退按钮的颜色后,是否可以设置后退按钮的样式?

使用appearanceWhenContainedIn:可以覆盖特定视图控制器的工具栏/导航栏的全局设置。 您需要为要不同设置的导航栏/工具栏创建一个子类。 Apple文档提供了如何完成此操作的示例。

您可以像这样在viewWillAppear上更新条形按钮的标题文本属性:

[self.rightBarButton setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor]} forState:UIControlStateNormal];

而且,如果您想在离开此视图控制器时设置旧的文本属性,则可以在viewWillDisappear上重新更新它。

[[UINavigationBar外观] setTintColor:[UIColor colorWithRed:251.0 / 255.0绿色:59.0 / 255.0蓝色:29.0 / 255.0 alpha:1.0]];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM