如何向多个 UIViewControllers 添加点击手势
Posted
技术标签:
【中文标题】如何向多个 UIViewControllers 添加点击手势【英文标题】:How to add a tap gesture to multiple UIViewControllers 【发布时间】:2017-08-13 21:03:18 【问题描述】:当用户在 Apple TV 遥控器上点按两次时,我想打印一条消息。我让它在单个 UIViewController
中工作,但我想重用我的代码,以便它可以在多个视图中工作。
代码“有效”是因为应用程序运行时没有任何问题。但是该消息永远不会显示在控制台中。我正在使用带有最新 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!")
【问题讨论】:
【参考方案1】:您的 TapHandler 刚刚发布。试试这个:
var tapHandler:TapHandler? = nil
override func viewDidLoad()
super.viewDidLoad()
tapHandler = TapHandler(controller: self)
我已经测试了代码并且正在运行。
【讨论】:
以上是关于如何向多个 UIViewControllers 添加点击手势的主要内容,如果未能解决你的问题,请参考以下文章
如何向所有 UIViewControllers 添加一个通用的浮动操作按钮
如何让 viewForZoomingInScrollView 在 Xcode 中跨多个 UIViewControllers 工作?
向 lambda 函数添加多个表达式,以获取 if/else 输出