当我使用 – [UIBarButtonItem initWith
Image:style:target:selector:]创建条形按钮项目时,我无法应用色彩颜色的导航项的后退按钮项.
使用图像作为视图控制器后台上下文不再可以吗?我似乎没有在HIG中找到任何指示,或者其中已被弃用或不鼓励的地方.
这是我的代码:
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"camera-navigation_item_back"] style:UIBarButtonItemStyleBordered target:nil action:nil]; [navItem setBackBarButtonItem:barButtonItem];
iOS 7结果:
iOS 6结果:
编辑:如果我尝试使用其中一个系统项目(加号,垃圾箱等)作为我的后退按钮,Apple将图像替换为标题“Back”.这在iOS 6和7中实际上是一样的.
解决方法
将图像的渲染模式设置为UIImageReneringModeAlwaysTemplate(该主题在上一个答案中提到的WWDC视频的33:00附近):
UIImage *backButtonImage = [UIImage imageNamed:@"imageName.png"]; backButtonImage = [backButtonImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; UIBarButtonItem * backButton = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStylePlain target:nil action:nil]; [[self navigationItem] setBackBarButtonItem:backButton]; [[[self navigationItem] backBarButtonItem] setTintColor:[UIColor redColor]];
如果您在AppDelegate.h中全局设置了tintColor,则不需要最后一行:
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];