2015-11-08 66 views
0

我試圖在我的應用程序啓動後閱讀GCController.controllers()陣列,以瞭解在應用程序啓動時哪些控制器已連接到AppleTV。但是GCController.controllers().count是0,直到viewDidAppear在我的初始UIViewController被調用後的某個點。有沒有人知道你可以檢查GCController.controllers()知道它已經與當前連接的控制器填充的權威性?tvOS GameController GCController.controllers在啓動後會在什麼時候被填充?

我知道需要註冊控制器連接通知;

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

但是,這是以後發射。首先,我需要知道哪些已經連接。有人知道嗎?

+0

任何人都知道是否及如何我可以鍵值觀察GCController.controllers()在swift?任何人? Bueller? ..Bueller? –

回答

1

你可以撥startWirelessControllerDiscoveryWithCompletionHandlerviewDidLoad然後檢查viewWillAppear這似乎適用於我剛剛完成的遊戲應用程序。

文檔:

後您的應用程序已經完成發射,操作系統 自動創建連接的控制器的列表。調用 控制器類方法爲所有連接的控制器檢索一組GCController對象 。接下來,使用這些對象來配置控制器或讀取控制器的輸入。如果沒有 已連接的控制器或,則在您的應用程序啓動時調用此方法時,該陣列將爲空

+0

感謝您的建議,但沒有骰子。 –

+0

只要您在應用程序啓動時不調用controllers(),就應該可以工作。我更新了我的答案,以包含來自文檔的信息。 – rmp

0

GCController將爲每個控制器生成GCControllerDidConnectNotification通知,包括那些在啓動前連接到設備的控制器。如果你沒有得到對已連接的控制器的通知,確認以下事項:

  • 仔細檢查它配對並開啓
  • 確保它是一個MFI控制器。
相關問題