Ios 修改并自定义UINavigationBar后退按钮的行为

Ios 修改并自定义UINavigationBar后退按钮的行为,ios,swift,uinavigationcontroller,uinavigationbar,Ios,Swift,Uinavigationcontroller,Uinavigationbar,我在导航栏中嵌入了一个ViewController。我希望导航栏中的“后退”按钮具有以下效果: 如果条件已满,则应用“后退”按钮的正常行为 如果条件未满足,则留在同一个VC上做其他事情 试着这样做:- override func viewDidLoad() { let transparentButton = UIButton() transparentButton.frame = CGRectMake(0, 0, 50, 40) transparen

我在导航栏中嵌入了一个ViewController。我希望导航栏中的“后退”按钮具有以下效果:

  • 如果条件已满,则应用“后退”按钮的正常行为
  • 如果条件未满足,则留在同一个VC上做其他事情
    • 试着这样做:-

       override func viewDidLoad() {
             let transparentButton = UIButton()
             transparentButton.frame = CGRectMake(0, 0, 50, 40)
             transparentButton.backgroundColor = UIColor.orangeColor()
             transparentButton.addTarget(self, action:"backAction:", forControlEvents:.TouchUpInside)
             self.navigationController?.navigationBar.addSubview(transparentButton)
          }
      
      功能是

       func backAction(sender:UIButton) {
           // check your condition
       }
      

      thks只需修改操作语法:action:#selector(backAction(sender:)great您知道为了执行导航控制器的正常返回,我必须在“backAction”中输入的代码吗?是的,只需输入您要检查的条件,如果成功,则通过self.navigationController.popViewController返回(动画:true)否则,请执行自定义任务。我理解的最后一个问题:您添加的自定义backbutton下是否仍保留标准backbutton?在将自定义backbutton添加为子视图之前删除标准backbutton是“更安全”还是“更干净”?您可以将其隐藏,这没有问题。