2017-08-13 67 views
3

当用户在Apple TV的遥控器上点击两次时,我想打印一条消息。我得到这个在一个UIViewController内工作,但我想重用我的代码,以便这可以在多个视图中工作。如何将点按手势添加到多个UIViewControllers

代码'工作',因为该应用程序运行没有任何问题。但是消息永远不会显示在控制台中。我正在使用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!") 
    } 

} 

回答

0

你TapHandler的代码。试试这个:

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

    tapHandler = TapHandler(controller: self) 

} 

我测试了代码并正在工作。