在我的应用中,我有一个自定义图标,可以返回上一个ViewController
。
它运行正常,但是在iOS 13上,该图标放错了位置。
有趣的事实是,我仍然必须单击左侧(以前的位置是后退图标,换句话说就是空白),以返回到上一个ViewController
。
你知道为什么吗?
这是我用来自定义后退按钮的代码。
var back = UIImage(named: "backButton")
back = back?.withAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50))
self.navigationController?.navigationBar.backIndicatorImage = back?.withAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50))
self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = back?.withAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50))
self.navigationController?.navigationBar.backItem?.backBarButtonItem = UIBarButtonItem(title: " ", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
self.navigationController?.navigationBar.tintColor = .black
答案 0 :(得分:0)
将UIBarButtonItem
与customView
配合使用非常适合您的情况。通过创建UIButton
的实例,您不仅可以选择图像和标题,而且还可以传递自定义选择器来处理按钮事件。
这是示例代码:
let button = UIButton(type: .system)
button.setImage(UIImage(named: "YOUR IMAGE NAME"), for: .normal)
button.setTitle("TITLE IF ANY", for: .normal)
button.sizeToFit()
button.addTarget(self, action: #selector(backBtnPressed(sender:)), for: .touchUpInside)
let leftBtn = UIBarButtonItem(customView: button)
leftBtn.style = .plain
navigationItem.leftBarButtonItem = leftBtn
@objc func backBtnPressed(sender: UIBarButtonItem) {
print("BackBtnPressed")
}