使用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

3)Google Question/Answer

添加看起来像<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禁用动画的主要内容,如果未能解决你的问题,请参考以下文章

pushViewController 后,如何禁用 backBarButtonItem?

设置后退按钮segue的速度/动画

使用 Charts.js 禁用动画

如何禁用“隐式”或自动动画

使用量角器测试 AngularJS 应用程序时禁用动画

如何在 Swift 中更改 backBarButtonItem 颜色?