我正在构建一个 tvos
应用程序。我有一个奇怪的错误,当我导航回那个特定 View 时,UICollectionView
失去了先前选择的单元格的焦点。场景是这样的。
我有两个 UIViewControllers
A
和 B
。 A
有一个 UITableView
,其中包含三个原型(prototype)单元格。每个单元格内部都有一个水平滚动的 UICollectionView
。当我单击任何 UICollectionViewCell
时,它会导航到 B
(详细信息页面)。我正在以模态方式呈现 B
。
现在,当我按下 Siri 上的菜单按钮时,远程 View A
再次出现(换句话说, View B
从 View 层次结构中删除)但当前选定的单元格与那时不同之前选择的。我尝试将 remembersLastFocusedIndexPath
与 true
和 false
值一起使用,还尝试通过实现
func indexPathForPreferredFocusedViewInCollectionView(collectionView: UICollectionView) -> NSIndexPath?
但是当我导航回 View A 时,控件需要使用此函数。我还重新加载了 viewWillAppear
函数中的所有内容。
谁能帮帮我。谢谢
最佳答案
collectionView 的属性 remembersLastFocusedIndexPath 应设置为 true,tableView 的属性应设置为 false。
此外,您是否在 viewWillAppear 中重新加载 UITableView,即当 B 弹出并出现 A 时,表格数据是否正在刷新? 如果是,则 lastFocusedIndexPath 在重新加载时将为零。
我们遇到了同样的问题。我们通过在弹出 B 时不重新加载内容来解决它。
维护一个标志说 didPush。按下 B 时将此标志设置为 true。当 A 出现时,检查是否设置了标志,然后才获取数据并重新加载表。
这对我们有用。
关于ios - tvos UICollectionView 失去焦点到以前的 Focus Cell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612603/