如何向多个UIViewControllers添加点击手势

时间:2017-08-13 21:03:18

标签: swift uicollectionview tvos uitapgesturerecognizer

当用户在Apple TV的遥控器上点击两次时,我想要打印一条消息。我让它在单个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!")
    }

}

1 个答案:

答案 0 :(得分:0)

您的TapHandler刚刚发布。试试这个:

var tapHandler:TapHandler? = nil
override func viewDidLoad() {
    super.viewDidLoad()

    tapHandler = TapHandler(controller: self)

}

我已经测试了代码并且正在运行。