Ios UINavigationBar中的多色后退按钮

Ios UINavigationBar中的多色后退按钮,ios,swift,Ios,Swift,我在UINavigationController中有一个UINavigationbar。我正在尝试将“后退”按钮设置为通过核心图形绘制的自定义图像。当放置在UIImageView中时,图像看起来很好,但是当我尝试将图像作为“后退”按钮放置时,它显示为一种颜色。我认为这与UINavigationBar的tintColor属性有关 基本上,无论我做什么,我都无法在图像中显示两种颜色。这是我试图设置为“后退”按钮的图像(只是红色圆圈,而不是周围的黑色): 这是我的密码: let image = Ic

我在UINavigationController中有一个UINavigationbar。我正在尝试将“后退”按钮设置为通过核心图形绘制的自定义图像。当放置在UIImageView中时,图像看起来很好,但是当我尝试将图像作为“后退”按钮放置时,它显示为一种颜色。我认为这与UINavigationBar的tintColor属性有关

基本上,无论我做什么,我都无法在图像中显示两种颜色。这是我试图设置为“后退”按钮的图像(只是红色圆圈,而不是周围的黑色):

这是我的密码:

let image = Icons.backButton(with: CGSize(width: 28, height: 28))
self.navigationController?.navigationBar.backIndicatorImage = image
self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = image
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItem.Style.plain, target: nil, action: nil)
据我所知,当我将图像指定给“后退”按钮时,导航栏将采用当前的tintColor并将其应用于整个图像。阿尔法通道是允许的,但所有纯色的都用浅色填充。所以现在我得到了一个红色的圆圈,没有白色的箭头。我尝试将tintColor设置为UIColor.clear,但这使整个后退按钮清晰/不可见

有没有办法破解导航控制器,让我有一个不止一种颜色的后退按钮?我知道我可以只设置一个自定义UIView而不使用navigationController,但我不希望这样


感谢您的帮助。谢谢

您需要将渲染模式设置为
.alwaysOriginal
,例如:

var backImage = UIImage(named: "back")
backImage = backImage?.withRenderingMode(.alwaysOriginal)
navigationController?.navigationBar.backIndicatorImage = backImage
navigationController?.navigationBar.backIndicatorTransitionMaskImage = backImage