1

我正在尝试GCController.controllers()在我的应用程序启动后读取数组,以了解在应用程序启动时哪些控制器已连接到 AppleTV。但是直到在我的初始 UIViewController 上被调用GCController.controllers().count后的某个时间点才为 0 。viewDidAppear有谁知道您可以检查GCController.controllers()它是否已填充当前连接的控制器的确定点?

我知道需要注册控制器连接通知;

NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleControllerDidConnectNotification:"   , name: GCControllerDidConnectNotification   , object: nil)

但那是发射后的事。首先我需要知道哪些已经连接。有人知道吗?

4

2 回答 2

1

GCController 将为每个控制器生成 GCControllerDidConnectNotification 通知,包括那些在启动之前连接到设备的通知。如果您没有收到已连接控制器的通知,请确认以下内容:

  • 仔细检查它是否已配对并打开
  • 确保它是 MFi 控制器。
于 2015-11-10T22:38:33.010 回答
1

你可以打电话startWirelessControllerDiscoveryWithCompletionHandlerviewDidLoad然后检查GCController.controllers()viewWillAppear似乎适用于我刚刚完成的游戏应用程序。

文件:

在您的应用程序完成启动后,操作系统会自动创建一个已连接控制器的列表。调用控制器类方法来检索所有连接的控制器的 GCController 对象数组。接下来,使用这些对象来配置控制器或读取控制器的输入。如果没有连接的控制器或者您在应用程序启动时调用此方法,则数组将为空

于 2015-11-10T19:43:50.007 回答