如何在多个UIViewControllers上添加轻拍手势?

3
当用户双击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

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

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

    tapHandler = TapHandler(controller: self)

}

我已经测试了代码,它可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接