2017-08-13 7 views
3

ユーザーがApple TVのリモコンで2回タップしたときにメッセージを印刷したいと思います。私はこれを単一のUIViewControllerの中で動作させることにしましたが、これは複数のビューで動作するように私のコードを再利用したいと思います。複数のUIViewControllersにタップジェスチャーを追加する方法

アプリが問題なく実行されるため、コードは「動作します」。しかし、メッセージは決してコンソールに表示されません。私は最新のXcode 8.3.3でSwift 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) 

} 

私はコードをテストしています。

関連する問題