我有一个非常简单的设置。具有根 UIViewController 的 UINavigationController,它使用 viewDidLoad
上的自定义后退按钮项修改其导航项。
let backButton = UIBarButtonItem(image: backArrowImage,
style: .plain,
target: nil,
action: nil)
navigationItem.backBarButtonItem = backButton
我希望这能完全用标题和默认后退箭头图标替换系统后退按钮。
但是,当我将新的 View Controller 插入堆栈时,导航栏会同时绘制新的自定义后退图标和系统后退图标。
这是我看到的:
这是我期望的样子:
最佳答案
你可以隐藏后退按钮
navigationItem.hidesBackButton = true
并使用 leftBarButtonItem
自定义 UIBarButtonItem
更新
import UIKit
final class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.hidesBackButton = true
let backItem = UIBarButtonItem(image: backArrowImage, style: .plain, target: self, action: #selector(backButtonPressed))
navigationItem.leftBarButtonItem = backItem
}
@objc func backButtonPressed() {
navigationController?.popViewController(animated: true)
}
}
关于ios - 为什么为 UINavigationItem 设置自定义 backBarButtonItem 会导致出现双后退按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67297647/