aatalyk aatalyk - 8 months ago 109
iOS Question

Unrecognized selector sent to instance Swift 3

I want to implement

with the
, below is the code where I added tapGestureRecognizer to my

let tapFirstGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(assignImage(_:)))
firstImageView.isUserInteractionEnabled = true
firstImageView.tag = 1

Here is the action method

func assignImage(_ sender: UIImageView){
imagePicker.allowsEditing = false
imagePicker.sourceType = .photoLibrary
imageViewTag = sender.tag

present(imagePicker, animated: true, completion: nil)

Compiler keeps saying

[UITapGestureRecognizer tag]: unrecognized selector sent to instance 0x6080001a7700'


The problem is with your method declaration and with assigning tag to the object of UIGestureRecognizer. Change your method declaration like this.

func assignImage(_ sender: UITapGestureRecognizer)


func assignImage(_ sender: UIGestureRecognizer)

Edit: To access imageView object with UITapGestureRecognizer.

func assignImage(_ sender: UITapGestureRecognizer) {
    if let imageView = sender.view as? UIImageView {


Note: You need to set tag with you imageView not with you UITapGestureRecognizer