我想在用户点击苹果电视遥控器两次时打印一条信息。我让它在一个UIViewController
内工作,但是我想重用我的代码,这样它可以在多个视图中工作。
代码“有效”,因为应用程序运行没有任何问题。但是消息永远不会显示在控制台中。我使用的是最新Xcode 8.3.3的Swift 3。有什么问题?
aUIViewController
的代码:
override func viewDidLoad() {
super.viewDidLoad()
_ = TapHandler(controller: self)
}
TapHandler
类的代码class TapHandler {
private var view : UIView?
required init(controller : UIViewController) {
self.view = controller.view
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.message))
tapGesture.numberOfTapsRequired = 2
self.view!.addGestureRecognizer(tapGesture)
self.view!.isUserInteractionEnabled = true
}
@objc func message() {
print("Hey there!")
}
}
最佳答案
你的TapHandler刚被释放。试试这个:
var tapHandler:TapHandler? = nil
override func viewDidLoad() {
super.viewDidLoad()
tapHandler = TapHandler(controller: self)
}
我已经测试了代码,正在工作。
关于swift - 如何向多个UIViewControllers添加点击手势,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45664892/