iOS 13-自定义后退按钮,不带文本Swift

时间:2019-09-17 07:41:33

标签: ios swift swift3 back ios13

在我的应用中,我有一个自定义图标,可以返回上一个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

这是后退图标的屏幕截图,不再在左侧: enter image description here

1 个答案:

答案 0 :(得分:0)

UIBarButtonItemcustomView配合使用非常适合您的情况。通过创建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")
}