0

I am building an app like Photos where you can scroll through thumbnails of your photos in a UICollectionView and you can tap on one to view that photo full-screen. I'm working to add support for keyboard navigation so you can focus on a photo with the arrow keys then press space to view it full-screen, dismiss it, then focus on another photo. This works well in the Photos app, but in my app when you dismiss the full-screen view controller, the focus is not restored - that cell is not focused until you press an arrow key again. How do you restore the focus when the presented view controller is dismissed?

To enable focus I set these in the UICollectionViewController:

collectionView.allowsFocus = true
collectionView.allowsFocusDuringEditing = true
collectionView.remembersLastFocusedIndexPath = true

I thought setting this would do the trick but I get the same behavior:

restoresFocusAfterTransition = true
Jordan H
  • 52,571
  • 37
  • 201
  • 351

1 Answers1

0

After a lot of debugging, I determined this was not working because I overrode canBecomeFirstResponder returning true. Once I returned false in both the presenting and presented view controller, focus properly restored to the presenting upon dismissing the presented. I am not sure if this is intentional behavior so I filed a bug report FB9814702.

Jordan H
  • 52,571
  • 37
  • 201
  • 351