首页 文章

UISwipeGestureRecognizer抛出无法识别的选择器发送错误

提问于
浏览
1

我的iOS应用程序中出现 unrecognized selector sent 错误 . 我尝试根据其他类似线程中提到的答案解决问题,但失败了 . 请看下面的代码,并帮助我 .

谢谢

class ThirdViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.



        let leftSwipe = UISwipeGestureRecognizer(target: self, action:  Selector(("HandleSwipes:")))

        let rightSwipe = UISwipeGestureRecognizer(target: self, action:   Selector(("HandleSwipes:")))

        leftSwipe.direction = .left
        rightSwipe.direction = .right


        view.addGestureRecognizer(leftSwipe)
        view.addGestureRecognizer(rightSwipe)



    }



    func HandleSwipes(sender: UISwipeGestureRecognizer) {

        //if(sender.direction == .left)
        //{
        //    tabBarController?.selectedIndex = 1
        //}
    }
}

2 回答

  • 2

    像这样写选择器 .

    Swift 2.3 or lower.

    let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(_:)))
    let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(_:)))
    

    Swift 3

    let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(sender:)))
    let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(sender:)))
    

    Note: 一个建议是电池方法名称始终以小写字母而不是大写字母开头 . 因此,如果您使用 handleSwipes 而不是 HandleSwipes ,那就更好了 .

  • 5

    你需要打个电话

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    
    
        let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(_:)))
    
        let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(_:)))
    
        leftSwipe.direction = .left
        rightSwipe.direction = .right
    
    
        view.addGestureRecognizer(leftSwipe)
        view.addGestureRecognizer(rightSwipe)
    }
    

    呼叫方法如

    func HandleSwipes(_ sender: UISwipeGestureRecognizer){
    
        if(sender.direction == .left)
        {
           print("Swiped left")
        }
    }
    

相关问题