【发布时间】:2016-09-08 08:46:57
【问题描述】:
我想为每个 Viewcontroller 实现一个手势识别器。
以下代码正在运行:
class ViewController: UIViewController {
func draggedView(sender:UIPanGestureRecognizer){
// do stuff
}
override func viewDidLoad() {
super.viewDidLoad()
let panRec = UIPanGestureRecognizer()
panRec.addTarget(self, action: #selector(ViewController.draggedView(_:)))
self.view.addGestureRecognizer(panRec)
self.view.userInteractionEnabled = true
}
}
现在我想给这个平移手势更动态/抽象一点
class Tools : NSObject {
var currentViewController: UIViewController?
func addPanToViewController(viewcontroller: UIViewController) {
currentViewcontroller = viewcontroller
if let currentViewcontroller = currentViewcontroller {
let panRec = UIPanGestureRecognizer()
panRec.addTarget(self, action: #selector(draggedView(_:)))
currentViewcontroller.view.addGestureRecognizer(panRec)
currentViewcontroller.view.userInteractionEnabled = true
}
}
func draggedView(sender:UIPanGestureRecognizer) {
//never called
}
}
我这样调用 ViewController-Class 中的代码:
let sidemenu = Tools()
sidemenu.addPanToViewController(self)
但是什么也没发生。没有错误,但没有手势起作用。使用调试器,我看到添加了手势。所以每个代码都会被执行。
我想在我的 Tools 类中执行 draggedView。
我真的不明白我的问题在哪里?
【问题讨论】:
标签: ios swift uiviewcontroller uigesturerecognizer