Sebbe Sebbe - 1 year ago 879
Swift Question

Swift3 iOS - How to make UITapGestureRecognizer trigger function

I am trying to add a

to a UIButton so it will trigger a function when tapped. I am using
Swift 3
and is getting some error:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SwiftRunner.ViewController tapBlurButton]: unrecognized selector sent to instance 0x149e07610'

This is roughly what I have:

// Swift 3
import UIKit
class ViewController {

@IBOutlet weak var qsBlurButton: UIButton!

override func viewDidLoad() {

let tapGesture = UITapGestureRecognizer(target: self, action: Selector(("tapBlurButton")))

func tapBlurButton(sender: UITapGestureRecognizer) {
print("Please Help!")

Answer Source

From your code you are using swift 3.0 so change your selector syntax like this

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBlurButton(_:)))

and Your function like this

func tapBlurButton(_ sender: UITapGestureRecognizer) {
    print("Please Help!")


Not idea that you are using button with tap gesture, instead of that use inbuilt method addTarget for button no need to create tap gesture for it like this

qsBlurButton.addTarget(self, action: #selector(self.tapBlurButton(_:)), forControlEvents: .TouchUpInside)

func tapBlurButton(_ sender: UIButton) {
    print("Please Help!")