XcodeのtvOS「タブ付きアプリケーション」の選択肢を使用してテストtvOSアプリケーションを作成しました。最初のタブビューコントローラでは、単純なテキストセルを含むUIcollectionViewを配置します。tvOS:TabBarとUICollectionViewの間のフォーカス変更を処理してクラッシュを防止する方法
アプリが実行されると、タブバーからフォーカスを受け入れるUICollectionViewに移動することができ、問題なしでビューの項目間を移動できます。
しかし、UICollectionViewからタブバーまで戻って移動しようとすると、次のメッセージとアプリがクラッシュ:
は(「tabtest.itemCell」にタイプ「UITabBarButton」(0x199b92828)の値をキャストできませんでした0x1000153c8)。
これは、フォーカスエンジンがコレクションビューを「見る」だけで、UITabBarButtonへのジャンプを処理するコードを追加する必要があることを意味します。
私は、フォーカスの変更を処理する方法に関する情報を高低に検索しており、何も特定されていません。 iOS/tvOS開発の新機能であることから、私は明らかに何か不足しているでしょう。
タブバーとUICollectionViewの間のフォーカスを管理する方法を教えてもらえますか?ここで
は私がUICollectionViewためのフォーカスを処理するために使用していたコードです:
// For Focus Engine
func collectionView(collectionView: UICollectionView, didUpdateFocusInContext context: UICollectionViewFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
}
func collectionView(collectionView: UICollectionView, shouldUpdateFocusInContext context: UICollectionViewFocusUpdateContext) -> Bool {
if let cell: UICollectionViewCell = context.nextFocusedView as! itemCell{
_ = self.collectionView.indexPathForCell(cell)
}
return true
}
遅ればせながら感謝ジャスティンのために
//。私は最終的にコードがちょうど間違っていることを最終的に理解することによって、ついにそれを理解しました「if let cell:...」とは、不要でクラッシュを招いていた。 –