iOS中的自定义segue

Posted

技术标签:

【中文标题】iOS中的自定义segue【英文标题】:Custom segue in iOS 【发布时间】:2013-07-05 08:24:15 【问题描述】:

我正在尝试制作一个自定义序列,其中 src 跌落以显示 dst。这是我目前拥有的。如何让 dst 在 src 后面?

-(void)perform 
    UIViewController *src = [self sourceViewController];
    UIViewController *dst = [self destinationViewController];

    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationCurveEaseIn
                     animations:^
                         [src.parentViewController.view setTransform:CGAffineTransformMakeTranslation(0, src.view.bounds.size.height)];
                     
                     completion:nil];

    [src presentViewController:dst animated:NO completion:nil];


【问题讨论】:

ios 7 仍处于保密协议下。因此,在当前格式中,它是题外话。您需要联系 developer.apple 以获得支持 问题在iOS 6的上下文中完全一样。会改变标题。 【参考方案1】:

与其将目标视图控制器安排在源控制器后面,不如试试这个:将源视图控制器渲染到图像视图,将该图像添加到源控制器,然后为图像落下设置动画。

这有很多好处:首先,无论您最终做什么,出于性能原因,您可能需要将源视图控制器渲染为图像无论如何。其次,它避免了必须弄乱视图控制器层次结构。

如果不是很清楚,这里是一步一步的:

    将源视图控制器渲染到UIImageViewUIImageView 添加到您的目标视图控制器(以便它完全覆盖目标视图) 删除您的源视图控制器并添加目标控制器 - 这应该是无缝/不可见的,因为您的目标控制器正在显示您之前准备的渲染图像。 动画UIImageView 下落以显示其下方的视图内容

【讨论】:

以上是关于iOS中的自定义segue的主要内容,如果未能解决你的问题,请参考以下文章

带有完成块和属性的自定义 segue 转换

动画状态栏以及segue中的自定义转换

IOS / Objective-C / Storyboard:从左到右的自定义Segue在视图控制器之间创建黑条

iOS - 自定义 segue 内存泄漏

具有单独移动背景的自定义 segue

Swift:嵌入在导航控制器中的视图之间的自定义segue