Ich habe eine Test tvOS App über Xcode's tvOS "Tabbed Application" Option erstellt. In der ersten Registerkarte Controller auf eine UIcollectionView mit einigen einfachen Textzellen setzen.tvOS: Wie man den Fokuswechsel zwischen TabBar und UICollectionView handhabt und Abstürze verhindert
Wenn die App ausgeführt wird, ist es möglich, von der Registerkartenleiste in die UICollectionView zu wechseln, wo der Fokus akzeptiert wird und man sich ohne Probleme zwischen den Elementen der Ansicht bewegen kann.
jedoch zu versuchen, bis zu der Tab-Leiste von der UICollectionView stürzt zu bewegen zurück, um die App mit der folgenden Meldung:
kann nicht Wert vom Typ gegossen ‚UITabBarButton‘ (0x199b92828) auf ‚tabtest.itemCell‘ (0x1000153c8).
Ich nehme an, dies bedeutet, dass die Fokus-Engine nur die CollectionView "sieht" und dass ich Code hinzufügen muss, um den Sprung zurück zum UITabBarButton zu behandeln.
Ich habe hoch und niedrig nach Informationen darüber gesucht, wie mit der Fokusänderung umzugehen ist und nichts spezifisch gefunden. Da ich neu in der iOS/TVOS-Entwicklung bin, vermisse ich wahrscheinlich etwas Offensichtliches.
Kann mir bitte jemand erklären, wie man den Fokus zwischen der Tab-Leiste und der UICollectionView verwaltet? Hier
ist der Code, ich verwende zu handhaben für die UICollectionView konzentrieren:
// 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
}
Verspäteter Dank Justin. Ich habe es schließlich herausgefunden, indem ich endlich verstanden habe, dass der Code einfach falsch ist. Die "wenn Zelle:..." ist unnötig und führte zum Absturz. –