JYC*_*JYC 7 navigation transitions ios uicollectionview
我正在研究多个UICollectionViewControllers,它们都以不同的布局显示相同的内容.
根据Apple的CollectionViewTransition示例应用程序和WWDC 2013的Session 218,UICollectionViewController有一个叫做的属性useLayoutToLayoutNavigationTransitions,它基本上通过插入'from'和'to'集合视图的布局来处理导航过渡.
我们假设我有两个UICollectionViewControllers名为MasterCollectionViewController和DetailCollectionViewController.当我从MasterCollectionViewController推送DetailCollectionViewController时,布局已正确更改,但集合视图仍使用MasterCollectionViewController中声明的数据源.
这对我来说是一个问题,因为在每个UICollectionViewControllers中,我需要重新排列节/项配置.我尝试做的一个很好的例子是iOS 7上的Photos应用程序.该应用程序的第一个选项卡有三个视图控制器:年份,集合和时刻.这些视图控制器都显示相同的内容:照片.每个视图控制器之间的区别在于照片在节中的分组方式.部分分组是UICollectionViewDataSource这里的一个问题.
如果useLayoutToLayoutNavigationTransitions我遇到的财产行为是正常行为,有没有办法以不同的方式实现我的目标?
任何帮助或评论将不胜感激.
谢谢!
我看到了同样的行为,并认为它不太理想.
这里的基本问题是UICollectionView在两个视图控制器之间共享/传递相同的实例.我试图改变代理和数据源,UICollectionView但遇到了各种各样的问题.
最后,我最终采用的解决方案是让主人UICollectionViewController成为代表UINavigationController,实施:
– navigationController:willShowViewController:animated:
...使用它来切换controllerMode属性,然后添加switch语句-collectionView:cellForItemAtIndexPath:并-collectionView:didSelectItemAtIndexPath:在模式中提供所需的行为.我还添加了代码以-setControllerMode:在主视图控制器中执行任何所需的状态更改.
希望有所帮助!