我有一个导航控制器,我想为其覆盖默认的后退箭头图像和文本。基本上,我想隐藏< 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
}
那么,我有什么想法可以实现这一目标?到目前为止,我还没有找到想要的东西。
任何建议表示赞赏!
答案 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: "")