iOS/Swift: 如何为后退按钮实现双击动作?

iOS/Swift: How to implement doubletap action for backButton?

我正在尝试为我的应用程序中的每个 ViewController 实现自定义后退按钮。我希望它有两个动作。如果按钮被单击,它应该给出 toast 警告。如果双击按钮,它应该返回 ViewController。

如何仅针对 swift 中的后退按钮实现此目的?

您不能修改 BackBarButtonItem 的操作和行为,您可以做的是创建一个您自己的 UIBarButtonObject 并将其指定为您的 leftBarButtonItem,同时为其提供您自己的选择器

需要注意的一件事是,这将删除库存后退按钮图像。

试试这个:

let doubleTap = UITapGestureRecognizer(target: self, action: #selector(actingFunction))
    DoubleTap.numberOfTapsRequired = 2
    barButton.addGestureRecognizer(doubleTap)

尝试通过单击和双击使用条形按钮

/// Tap Gesture to Handle Double Tap
let tapGesture : UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(SourceVC.handleGesture(getsure:)))
        tapGesture.numberOfTapsRequired = 2

/// Custom Button That With Handle two actions
let customButtonn : UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
customButtonn.setTitleColor(UIColor.blue, for: .normal)
customButtonn.setTitle("button", for: .normal)
customButtonn.addTarget(self, action: #selector(SourceVC.navButton(sender:)), for: .touchUpInside)
customButtonn.addGestureRecognizer(tapGesture)

/// Create a Custom bar Button  
let navLeftButton = UIBarButtonItem()
navLeftButton.customView = customButtonn

/// Assign it to navigation Bar
self.navigationItem.leftBarButtonItem = navLeftButton

我在 SourceVC 中的自定义按钮操作 Class

/// Single Tap
@objc func navButton(sender:UIButton){
        print("navButtonTapped Once")
      }

/// Double Tap
@objc func handleGesture(getsure:UITapGestureRecognizer){
        print("navButtonTapped twice")
      }

模拟器输出:

控制台输出:

注意 - 这样做会将默认设置移回到栏中,您需要以自定义方式设计它,使其看起来像模拟器输出中显示的那样 - 按钮没有出现背面图片