Search code examples
swiftswift3uiswipegesturerecognizer

UIGestureRecognizer causes uncaught exception error


UIGestureRecognizer is causing an uncaught exception error. It says unrecognized selector sent to instance. I'm using Swift 3 and Xcode 8.

This is the code.

import UIKit
import UIKit.UIGestureRecognizer

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    print("starting")        

    var swipeDown = UISwipeGestureRecognizer(target: self, action: 
"respondToSwipeGesture:")
    swipeDown.direction = UISwipeGestureRecognizerDirection.down
    self.view.addGestureRecognizer(swipeDown)

}

func respondToSwipeGesture(gesture: UIGestureRecognizer) {

    if let swipeGesture = gesture as? UISwipeGestureRecognizer {

        switch swipeGesture.direction {

        case UISwipeGestureRecognizerDirection.down:

           // go to View Controller 2


            gopage2()       

        default:
            print("does it work? ")
            break
        }
    }
}





func gopage2() {


    let storyboard=UIStoryboard(name: "Main", bundle: nil)
    let viewController = 
storyboard.instantiateViewController(withIdentifier: "ViewController2")    
as! UIViewController
    self.present(viewController, animated: true)  }


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}





}

Does respondToSwipeGesture need to be a public class?


Solution

  • Just add an "ignore this" underscore to the parameter.

    func respondToSwipeGesture(_ gesture: UIGestureRecognizer) {