Я вижу такое же поведение и согласен, что это не идеально.
Фундаментальная проблема здесь заключается в том, что то же самое UICollectionView
Экземпляр общий/передается между двумя контроллерами представления. Я экспериментировал с попыткой изменить делегат и источник данных UICollectionView
Но столкнулся с различными проблемами.
В конце концов, решение, которое я в итоге принял, было сделать мастер UICollectionViewController
делегат UINavigationController
, реализация:
– navigationController:willShowViewController:animated:
... используя это для переключения controllerMode
свойство, а затем добавление операторов коммутатора в -collectionView:cellForItemAtIndexPath:
а также -collectionView:didSelectItemAtIndexPath:
Чтобы обеспечить необходимое поведение в режиме. Я также добавил код в -setControllerMode:
сделать любые необходимые изменения состояния в контроллере мастер -представления.
Надеюсь, это поможет!