UIAppearance和UINavigationBar控制器

VTS*_*S12 1 objective-c uinavigationcontroller ios uiappearance

我有我的UIBarButtonItems和我的UINavigationBar的背景图片.我正在尝试使用UIAppearance来自定义所有这些,具体如下:

    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearance] setBackgroundImage:[UIImage imageNamed:@"navbar_btn.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

而且效果很好.唯一的问题是UINavigationBar上的默认后退按钮仍然使用标准的iOS背景颜色/图像.当我在[UINavigationBar外观]上设置TintColor时,它会改变颜色,但只需要一个UIColor.

是否可以设置默认导航后退按钮图像(无需手动更改每个viewcontroller)或将图像转换为UIColor?

谢谢!

更新:答案如下

显然,UIBarButtonItem有一个单独的函数用于后退定制.我必须根据navbar_btn.png为后退按钮创建另一个图像并使用以下方法设置它:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

VTS*_*S12 9

显然,UIBarButtonItem有一个单独的函数用于后退定制.我必须根据navbar_btn.png为后退按钮创建另一个图像并使用以下方法设置它:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)