aatalyk aatalyk - 10 months ago 115
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'

Answer Source

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