【发布时间】:2015-10-28 22:14:18
【问题描述】:
我正在尝试在我的 SpriteKit 游戏中实现暂停菜单,但是当用户点击菜单按钮时,它会返回上一个视图。我正在使用 GCEventViewController 尝试禁用 UIKit 交互,但它不起作用。有什么建议吗?
【问题讨论】:
我正在尝试在我的 SpriteKit 游戏中实现暂停菜单,但是当用户点击菜单按钮时,它会返回上一个视图。我正在使用 GCEventViewController 尝试禁用 UIKit 交互,但它不起作用。有什么建议吗?
【问题讨论】:
根据this,您需要从
继承您的 ViewController GCEventViewController
并设置它的属性
controllerUserInteractionEnabled = false
【讨论】:
false 实际上是默认值,所以简单的子类化应该可以工作。
我在 Apple Developer Forums 中找到了答案, Stop Menu Button going back to previous screen
我所有的视图控制器都是从 UIViewController 简单继承的(因此 Swift 代码可以与 iOS 共享),并且在我的游戏场景所在的视图控制器中,我添加了这个属性和这个代码,
let menuPressRecognizer = UITapGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
menuPressRecognizer.addTarget(self, action: "menuButtonAction:")
menuPressRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
}
func menuButtonAction(sender: NSObject) {
pauseGame()
self.view.removeGestureRecognizer(menuPressRecognizer)
}
func startGame() {
self.view.addGestureRecognizer(menuPressRecognizer)
}
基本上,当我开始游戏时,我会拦截按下菜单按钮来暂停我的游戏,但在暂停时,我会移除点击手势识别器,所以如果你再次按下菜单,你将中止游戏然后返回到上一个屏幕(如果您决定继续,那么我重新添加 menuPressRecognizer)。
希望这会有所帮助。
【讨论】: