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")
}
模拟器输出:
控制台输出:
注意 - 这样做会将默认设置移回到栏中,您需要以自定义方式设计它,使其看起来像模拟器输出中显示的那样 - 按钮没有出现背面图片
我正在尝试为我的应用程序中的每个 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")
}
模拟器输出:
控制台输出:
注意 - 这样做会将默认设置移回到栏中,您需要以自定义方式设计它,使其看起来像模拟器输出中显示的那样 - 按钮没有出现背面图片