Search code examples
swiftuitapgesturerecognizer

unrecognized selector sent to instance when i call from another class


When i call a recognizer from another class this error appears: unrecognized selector sent to instance, if you call no error in the same class

var orderViewCard = OrderVC()

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(orderViewCard.handleCardTap(recognzier:)))
orderViewCard.handleArea.addGestureRecognizer(tapGestureRecognizer)

in OrderVC:

@objc
    func handleCardTap(recognzier:UITapGestureRecognizer) {
        switch recognzier.state {
        case .ended:
            animateTransitionIfNeeded(state: nextState, duration: 0.9)
        default:
            break
        }
}

Solution

  • What you need to do is to select target accordingly

         var orderViewCard = OrderVC()
    
        let tapGestureRecognizer = UITapGestureRecognizer(target: orderViewCard, action: #selector(orderViewCard.handleCardTap))
        orderViewCard.handleArea.addGestureRecognizer(tapGestureRecognizer)