使用backBarButtonItem禁用动画

问题描述 投票:1回答:3

正如我的标题所说,是否有任何方法可以自定义默认后退按钮操作方法?

我试图在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按钮的图像,这是一种方式,但我想以本机方式。

ios swift uinavigationcontroller uinavigationitem
3个回答
1
投票

一种选择是在View Controller上实现viewWillDisappear方法并设置animationEnable No.

override func viewWillDisappear(animated : Bool) {
super.viewWillDisappear(animated)
   UIView.setAnimationsEnabled(false)
} 
override func viewDidDisappear(_ animated: Bool) {
      UIView.setAnimationsEnabled(false)
}

0
投票

你必须在那里添加自定义栏按钮...

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)
    }

0
投票
// 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)
}
© www.soinside.com 2019 - 2024. All rights reserved.