setBackButtonBackgroundImage不起作用

我只是试图将UINavigationBar的后退button图标更改为自定义图像,以便与所使用的所有图标匹配,但是我已经采取了两种不同的方式。

在故事板检查器中的UINavigationController中将背面图像设置为图像,导致图像不符合标题或rightBarItem

在这里输入图像说明

我试过的另一种方法是在ViewController文件或setBackButtonBackgroundImage中的setBackButtonBackgroundImage 。 但是下面的代码;

 let backImg: UIImage = UIImage(named: "Back")! UIBarButtonItem.appearance().setBackButtonBackgroundImage(backImg, forState: .Normal, barMetrics: .Default) 

但是这样的结果更奇怪,形象变得捉襟见肘。

任何人都可以帮我解释为什么会发生这种情况,或者给出一个替代方法来更改UINavigationBar的后退图标?

在这里输入图像说明

  let backImage = UIImage(named: "back_button_name") UIBarButtonItem.appearance().setBackButtonBackgroundImage(backImage?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, (backImage?.size.width)!-1, 0, 0)), forState: .Normal, barMetrics: .Default) 

Swift 3.0

 let backImage = UIImage(named: "arrow_left") UINavigationBar.appearance().backIndicatorImage = backImage UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage