自定义视图控制器从UICollectionView转换

时间:2014-07-03 23:32:25

标签: ios uinavigationcontroller uicollectionview uiviewanimation uiviewanimationtransition

我有3个视图控制器,它们都有不同布局的集合视图,一切运行良好,我唯一关注的问题是iOS7中引入的视图控制器与UIView动画块之间的自定义转换。

查看控制器

VC1:所有演示文稿视图控制器,其中存在用户具有的所有演示文稿的缩略图。它是垂直滚动的缩略图图像的3xn集合视图。在VC1中,屏幕上最多可以看到9个单元格。

VC2:在VC1中选择一个特定的演示文稿后,我们来到下一个视图控制器,它显示该演示文稿中的所有幻灯片。在VC2的屏幕上可以看到30个最大单元格。

VC3:在点击VC2的任何幻灯片时,我们来到VC3,整个屏幕上显示相同的图像。最多2个幻灯片可以在VC3中同时显示(当用户滚动到下一张幻灯片时)。

现在问题在于:

用户有两种选择,

选项1:用户来自vc1 - > vc2 - > VC3 选项2:有一种错觉,用户直接从vc1转到vc3,但是因为在弹出vc3时,我需要来vc 2而不是vc1,所以在视图中会出现vc2,我推vc3。

在vc2和vc3之间有一个自定义转换,这是一个缩放效果,它似乎是来自vc2的一个单元放大。

当用户执行option1时,转换有点滞后,当用户选择选项2时,它完全正常。我真的没理由。

  • 我在vc2
  • 中显示细胞时使用小尺寸图像
  • 我也以异步方式加载图片
  • 我在其他一些地方看到,为了确保背景是白色而且颜色不清晰,做到了
  • 选项1和2之间没有真正的区别,只有我解释过。

为什么一个人在转型中会有滞后而另一个人会顺利?我不确定你想看哪个代码,所以如果你评论你想看的东西,我可以粘贴一些东西。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

对于选项一,在故事板中从vc1到vc3创建一个segue。并像这样使用它:

[self performSegueWithIdentifier:@"1to3"
                          sender:self];

此外,如果要返回VC1

,请将其添加到VC3
[self.navigationController popToRootViewControllerAnimated:YES];

这是一个示例项目因为我很无聊:

https://github.com/MichaelSnowden/StackOverflow

修改

如果你只是想从vc3转到vc2,只需在vc3中使用它:

[self.navigationController popViewControllerAnimated:YES];