问题描述
在 XCode 12 中,使用 Swift 5,使用 Game SpriteKit 技术创建一个新项目。除其他外,这会产生:
- GameViewController.swift
- GameScene.swift
在 GameScene.swift 中我添加了
-
在类定义之后
let tapRec2 = UITapGestureRecognizer()
-
in override func didMove(to view: SKView) {
tapRec2.addTarget(self,action:#selector(GameScene.tappedView2(_:) )) tapRec2.numberOfTouchesRequired = 1 tapRec2.numberOfTapsRequired = 2 //2 taps i self.view!.addGestureRecognizer(tapRec2)
-
tappedView2 函数的实现来检测双击。
@objc func tappedView2(_ sender:UITapGestureRecognizer) { let controller = self.view?.window?.rootViewController let new_controller = ViewController() print("double click detected") controller?.navigationController?.pushViewController(new_controller,animated: true) }
- 然后我使用模板 https://gist.github.com/phynet/075d538c93c0bfe62596bc4d47a482e1 创建了一个 ViewController 类
我编译并运行它,应用程序正确启动,如果我双击它会检测到它,但是没有显示 ViewController。我做错了什么?
解决方法
通过将 tappedView2 简化为以下代码找到了解决方案:
Q_upper Q_lower Q_middle distance
2127 79.746342 76.430846 83.151515 13.441338
并将 UIViewController 简化为:
@objc func tappedView2(_ sender:UITapGestureRecognizer) {
let new_controller = ViewController()
self.view?.window?.rootViewController = new_controller
}