iOS中的自定义segue

时间:2013-07-05 08:24:15

标签: iphone ios objective-c uiviewcontroller segue

我正在尝试制作一个自定义的seque,其中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];

}

1 个答案:

答案 0 :(得分:2)

不是将目标视图控制器安排在源控制器后面,为什么不尝试这样做:将源视图控制器渲染到图像视图,将该图像添加到源控制器,然后为落下的图像设置动画。

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

如果还不完全清楚,那就是一步一步:

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