返回导航栏中的按钮在显示navigationController后更改颜色

时间:2014-09-11 13:02:15

标签: xcode uinavigationbar uibarbuttonitem back-button tintcolor

我以这种方式呈现MFMailComposeViewController:

[self presentViewController:composer animated:YES completion:nil];

邮件编辑器的“取消”按钮自动采用

的颜色
[[UIView appearance] tintColor];

当我解雇邮件编辑时:

[controller dismissViewControllerAnimated:YES completion:nil];

可见控制器的后退按钮(仅标准后退箭头)从白色变为视图tintColor(就像作曲家的“取消”按钮),我无法更改它。我需要它是白色的,因为导航栏背景设置为tintColor。

有人可以帮助我吗?

由于

在应用程序中,永远不要设置[[UIView appearance] tintColor]属性。而是在需要时设置[[self view] tintColor]。所有的作品和backButton都是我想要的白色。

1 个答案:

答案 0 :(得分:2)

在整个视图层次结构中继承色调颜色。听起来你可能会在呈现邮件编辑器之前为所有UIView设置全局色调颜色,如果你打电话会发生这种情况:

[[UIView appearance] setTintColor:[UIColor orangeColor]];

相反,尝试通过在呈现之前添加此行来为邮件编辑器控制器设置色调颜色:

//Set the tint color on just the composer controller as needed here before presenting
[composer.view setTintColor:[UIColor orangeColor]];