Veo el mismo comportamiento y estoy de acuerdo en que es menos que ideal.
El problema fundamental aquí es el mismo UICollectionView
La instancia se comparte/se pasa entre los dos controladores de vista. Experimenté tratando de cambiar el delegado y la fuente de datos del UICollectionView
pero se encontró con varios problemas.
Al final, la solución que terminé adoptando fue hacer el maestro UICollectionViewController
un delegado del UINavigationController
, implementar:
– navigationController:willShowViewController:animated:
... usando esto para cambiar un controllerMode
propiedad y luego agregar declaraciones de conmutación a -collectionView:cellForItemAtIndexPath:
y -collectionView:didSelectItemAtIndexPath:
Para proporcionar el comportamiento requerido en el modo. También agregué código a -setControllerMode:
Para hacer cualquier cambio de estado requerido en el controlador de vista maestra.
¡Espero que ayude!