如何隐藏导航栏后退按钮中的后退箭头?

时间:2019-08-05 06:28:07

标签: ios swift uinavigationbar

我有一个导航控制器,我想为其覆盖默认的后退箭头图像和文本。基本上,我想隐藏< Back小箭头,而不是<,只显示Back文本。我已经能够用另一张图片替换后退箭头,所以我想我只是尝试用一张图片替换它,然后将图片设置为与背景色匹配。我该怎么做?

在AppDelegate.swift中,我有这个:

extension UINavigationItem{
    override open func awakeFromNib() {
        super.awakeFromNib()
        let backItem = UIBarButtonItem()
        backItem.title = ""
        backItem.image = UIImage(named: "icons8_burger")
        self.backBarButtonItem = backItem
    }
}

在单击按钮时发送到的控制器的viewDidLoad()中,我有以下内容:

override func viewDidLoad() {
        super.viewDidLoad()
        let burger = UIImage(named: "icons8_burger")

        navigationController?.navigationBar.backIndicatorImage = burger
        navigationController?.navigationBar.backIndicatorTransitionMaskImage = burger
    }

那么,我有什么想法可以实现这一目标?到目前为止,我还没有找到想要的东西。

任何建议表示赞赏!

3 个答案:

答案 0 :(得分:1)

如果这样做,

navigationController?.navigationBar.backIndicatorImage = nil
navigationController?.navigationBar.backIndicatorTransitionMaskImage = nil

navigationController?.navigationBar.backIndicatorImage = UIImage(named: "")
navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "")

然后默认情况下,iOS使用<作为默认图片。

要删除此图像,您需要添加空白的透明图像。我使用了here的示例,而Google图片参考是here

现在将图像像素尺寸减小到(1,1),并添加资产并使用以下代码。

navigationController?.navigationBar.backIndicatorImage = UIImage(named: "Blank")
navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "Blank")

此处空白与我的资产中的图像名称相同。

答案 1 :(得分:1)

使用一个空的图像对象,如下所示,

    let mask = UIImage()
    navigationController?.navigationBar.backIndicatorImage = mask
    navigationController?.navigationBar.backIndicatorTransitionMaskImage = mask
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)

答案 2 :(得分:-2)

将有效图像应用于navigationController

navigationController?.navigationBar.backIndicatorImage = UIImage(named: "")