UISwipeGestureRecognizer抛出无法识别的选择器发送错误
问题描述:
我在我的iOS应用程序中出现unrecognized selector sent
错误。我尝试根据其他类似线程中提到的答案解决问题,但失败了。请看下面的代码,并帮助我解决这个问题。UISwipeGestureRecognizer抛出无法识别的选择器发送错误
感谢
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
//}
}
}
答
写入选择这样的。
Swift 2.3或更低。
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(_:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(_:)))
斯威夫特3
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(sender:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(HandleSwipes(sender:)))
注:建议之一是连击方法名称始终以小写不上的情况下启动。因此,如果您使用handleSwipes
而不是HandleSwipes
,那么它就是连击。
答
你需要像喜欢
func HandleSwipes(_ sender: UISwipeGestureRecognizer){
if(sender.direction == .left)
{
print("Swiped left")
}
}
斯威夫特版本
调用方法调用? –
Swift Version 3.0 – Vyshakh
@Vyshakh - 检查更新的答案 –