使用backBarButtonItem禁用动画
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用backBarButtonItem禁用动画相关的知识,希望对你有一定的参考价值。
正如我的标题所说,是否有任何方法可以自定义默认后退按钮操作方法?
我试图在Google上找到但没有得到满足我要求的任何答案。
我知道一种方法将UIBarButtonItem
添加到self.navigationItem.leftBarButtonItem
并自定义操作方法,但我将隐藏<返回按钮的标志,我不想要这个。
一些由Google完成的研发。
1)How to override self.navigationItem.backBarButtonItem Action?
2)iOS disable animation for NavigationController back button
添加看起来像<Back
按钮的图像,这是一种方式,但我想以本机方式。
答案
一种选择是在View Controller上实现viewWillDisappear方法并设置animationEnable No.
override func viewWillDisappear(animated : Bool) {
super.viewWillDisappear(animated)
UIView.setAnimationsEnabled(false)
}
override func viewDidDisappear(_ animated: Bool) {
UIView.setAnimationsEnabled(false)
}
另一答案
你必须在那里添加自定义栏按钮...
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: YourDesiredFrame)
button.setImage(UIImage(named : "back"), for: .normal)
button.addTarget(self, action: #selector(backButtonTapped(_:)), for: .touchUpInside)
let barButton = UIBarButtonItem(customView: button)
self.navigationItem.backBarButtonItem = barButton
}
func backButtonTapped(_ sender : UIButton) {
_ = self.navigationController?.popViewController(animated : false)
}
另一答案
// Swift 4
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// turn on animations
UIView.setAnimationsEnabled(true)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// turn off animations
UIView.setAnimationsEnabled(false)
}
以上是关于使用backBarButtonItem禁用动画的主要内容,如果未能解决你的问题,请参考以下文章