Ios 如何在Swift中替换物料中的后退按钮
我想改变后退按钮的行为,我用新的条形按钮替换材质的后退按钮,如下图所示:Ios 如何在Swift中替换物料中的后退按钮,ios,swift,swift3,cosmicmind,Ios,Swift,Swift3,Cosmicmind,我想改变后退按钮的行为,我用新的条形按钮替换材质的后退按钮,如下图所示: let backButton: UIButton = { let btn = UIButton() btn.setImage(UIImage(named: "prev"), for: .normal) btn.frame = CGRect(x: 0, y: 0, width: 33/2, height: 27/2) return btn }() 在查看加载功能中: override fu
let backButton: UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "prev"), for: .normal)
btn.frame = CGRect(x: 0, y: 0, width: 33/2, height: 27/2)
return btn
}()
在查看加载功能中:
override func viewDidLoad() {
super.viewDidLoad()
backButton.action = { [weak self] in self?.showAlert() }
let barButton = UIBarButtonItem(customView: backButton)
navigationItem.backButton.isHidden = true
navigationItem.leftBarButtonItems = [barButton]
}
但我无法单击“新建后退”按钮,因为该按钮已被UINavigationBarBackIndicatorView覆盖
如何用材质替换后退按钮。我想保留材质库,因为在项目的其他功能中,我需要材质
提前感谢您的帮助。在您的
viewDidLoad()方法中执行此操作:
self.navigationItem.backBarButtonItem.hidden = YES
let newBackButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.back(sender:)))
self.navigationItem.leftBarButtonItem = newBackButton
self.navigationItem.leftBarButtonItem?.image = UIImage(named : "prev")
self.navigationItem.leftBarButtonItem?.accessibilityFrame = CGRect(x: 0, y: 0, width: 33/2, height: 27/2)
然后在视图控制器中定义一个名为back
的函数,该函数将为新的后退按钮执行所需的操作
func back(sender: UIBarButtonItem) {
// Perform your custom action
}
注意无需定义单独的按钮变量
**如果self.navigationItem.backbarbuttoneim.hidden=YES
不起作用,则将其替换为self.navigationItem.backbarbuttoneim=nil代码>**使用backButton.ishiden与包含新自定义图标的leftViews一起添加图标按钮对我来说很有用,我使用的是Material 2.17.0
func setNavigation() {
let backButton = IconButton(image: Icon.cm.arrowBack)
backButton.addTarget(self, action: #selector(onBackTapped), for: .touchUpInside)
navigationItem.leftViews = [backButton]
navigationItem.backButton.isHidden = true
}
感谢您的回答,但Material的“后退”按钮没有隐藏。或者您可以尝试以下操作:navigationItem.hidesBackButton=true
,首先使用我显示的代码,然后根据需要进行更改我在开发
分支中为您进行了修复。如果您在github上对此有疑问,我将在主分支中发布它后立即更新您。不应超过几天。您的问题已解决?已修复:。我真的很感谢你对我的问题的帮助。如果你觉得我的答案有用,请将其标记为有用/接受