【问题标题】:Disable animation with backBarButtonItem使用 backBarButtonItem 禁用动画
【发布时间】:2017-08-22 06:53:07
【问题描述】:

正如我的标题所说,有没有办法自定义默认的后退按钮操作方法?

我尝试在 Google 上查找,但没有得到任何满足我要求的答案。

我知道一种将UIBarButtonItem 添加到self.navigationItem.leftBarButtonItem 并自定义操作方法的方法,但我将隐藏 Back 按钮的标志,我不想要这个。

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


【解决方案1】:

一种选择是在视图控制器上实现viewWillDisappear方法并设置animationEnable No

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

【讨论】:

  • 将无济于事,因为我只想在移动开始时禁用移动动画和 viewWillDisappear 方法调用
  • 但它会禁用应用程序所有屏幕的动画,所以我们需要为所有相关屏幕管理 True
【解决方案2】:

您必须在此处添加自定义栏按钮...

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

【讨论】:

    【解决方案3】:
    // 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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多