Swift 如何向多个UIViewController添加点击手势

Swift 如何向多个UIViewController添加点击手势,swift,uicollectionview,tvos,uitapgesturerecognizer,Swift,Uicollectionview,Tvos,Uitapgesturerecognizer,我想在用户轻触苹果电视遥控器两次时打印一条消息。我让它在一个UIViewController中工作,但我想重用我的代码,以便它可以在多个视图中工作 代码“有效”,因为应用程序运行时没有任何问题。但该消息永远不会显示在控制台中。我正在使用Swift 3和最新的Xcode 8.3.3。有什么问题吗 UIViewController的代码: override func viewDidLoad() { super.viewDidLoad() _ = TapHandler(control

我想在用户轻触苹果电视遥控器两次时打印一条消息。我让它在一个
UIViewController
中工作,但我想重用我的代码,以便它可以在多个视图中工作

代码“有效”,因为应用程序运行时没有任何问题。但该消息永远不会显示在控制台中。我正在使用Swift 3和最新的Xcode 8.3.3。有什么问题吗

UIViewController的代码

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)

}
我已经测试了代码,正在工作