如何防止游戏控制器按钮B退出应用程序/导航回到tvOS中的菜单

时间:2015-11-26 05:13:01

标签: tvos gamecontroller

默认情况下,游戏控制器按钮B退出应用程序并导航回tvOS主屏幕。起初我认为这很直观,但很快就意识到Nimbus MENU按钮(控制器的中间位置)是什么,我真的想在游戏中使用按钮B

为按钮B设置更改处理程序有效,但应用程序在释放按钮时仍会退出。

GCControllerButtonValueChangedHandler buttonBHandler = ^(GCControllerButtonInput *button, float value, BOOL pressed) {
        NSLog(@"B");
};

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

解决方案是让我的主ViewController继承自GCEventViewController而不是UIViewController。

默认情况下,使用GCEventViewController时,MENU按钮不会返回菜单。在这种情况下,如果您希望它能够返回具有原始行为的菜单,您只需将controllerUserInteractionEnabled设置为YES。

请在此处查看此课程的文档: https://developer.apple.com/library/tvos/documentation/GameController/Reference/GCEventViewController_Ref/index.html

编辑:apple dev forum helpep me修复此问题:https://forums.developer.apple.com/message/57926#57926

希望这有帮助,

答案 1 :(得分:0)

我也遇到过与Unity有关的问题,但我认为这个相当讨厌的解决方案可以提供帮助。

从GCEventViewController派生可以覆盖多个方法,其中之一是:

- (void)pressesBegan:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event

在不调用super的情况下返回或处理按下将删除对内部的所有调用。