如何在呈现的视图控制器被关闭时恢复焦点?

How to restore focus when presented view controller is dismissed?

我正在构建一个类似照片的应用程序,您可以在 UICollectionView 中滚动浏览照片的缩略图,您可以点击其中一张以全屏查看该照片。我正在努力添加对键盘导航的支持,这样您就可以使用箭头键专注于一张照片,然后按 space 全屏查看它,关闭它,然后专注于另一张照片。这在照片应用程序中运行良好,但在我的应用程序中,当您关闭全屏视图控制器时,焦点不会恢复 - 该单元格不会聚焦,直到您再次按下箭头键。当呈现的视图控制器被关闭时,如何恢复焦点?

为了启用焦点,我在 UICollectionViewController:

中设置了这些
collectionView.allowsFocus = true
collectionView.allowsFocusDuringEditing = true
collectionView.remembersLastFocusedIndexPath = true

我认为设置这个可以解决问题,但我得到了相同的行为:

restoresFocusAfterTransition = true

经过大量调试后,我确定这是行不通的,因为我覆盖了 canBecomeFirstResponder 返回 true。一旦我在呈现和呈现的视图控制器中返回 false ,在关闭呈现时焦点正确恢复到呈现。我不确定这是否是故意行为,所以我提交了错误报告 FB9814702。