【问题标题】:GCEventViewController not disabling UIKit controls (tvOS)GCEventViewController 不禁用 UIKit 控件(tvOS)
【发布时间】:2015-10-28 22:14:18
【问题描述】:

我正在尝试在我的 SpriteKit 游戏中实现暂停菜单,但是当用户点击菜单按钮时,它会返回上一个视图。我正在使用 GCEventViewController 尝试禁用 UIKit 交互,但它不起作用。有什么建议吗?

【问题讨论】:

    标签: uikit tvos


    【解决方案1】:

    根据this,您需要从

    继承您的 ViewController
     GCEventViewController
    

    并设置它的属性

    controllerUserInteractionEnabled = false
    

    【讨论】:

    • false 实际上是默认值,所以简单的子类化应该可以工作。
    • bio,是的,但显然 DaveMoore 将其设置为 true。
    • 它也不适合我。我已将 GCEventViewController 子类化,并且在 viewDidLoad 上明确将 controllerUserInteractionEnabled 设置为 false,但 MENU 按钮仍将我发送回前一个视图控制器:/
    【解决方案2】:

    我在 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)。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多