我看到相同的行为,并同意它不理想。
这里的基本问题是相同 UICollectionView
实例是在两个视图控制器之间共享/传递的。我试图更改的代表和数据源 UICollectionView
但是遇到了各种问题。
最后,我最终采用的解决方案是使主人 UICollectionViewController
代表 UINavigationController
, ,实施:
– navigationController:willShowViewController:animated:
...用它切换 controllerMode
属性,然后将开关语句添加到 -collectionView:cellForItemAtIndexPath:
和 -collectionView:didSelectItemAtIndexPath:
在模式下提供所需的行为。我还添加了代码 -setControllerMode:
在主视图控制器中执行任何必需的状态更改。
希望有帮助!