Xcode自定义segue动画

时间:2013-10-08 08:50:20

标签: xcode animation storyboard segue uistoryboardsegue

我遇到两个故事板控制器之间的过渡动​​画问题。 我在故事板中有一个带有两个视图控制器的singleView项目。

现在我想制作一个自定义过渡动画:

  • 我当前的视图控制器应该消失在左侧
  • 新视图控制器应来自右侧

我已经有UIStoryboardSegue课了。

但是我应该在-(void)perform{}方法中写什么?

非常感谢,

纳斯。

1 个答案:

答案 0 :(得分:11)

对于那个简单的segue,你可以尝试这样的事情:

- (void)perform {
    UIViewController* source = (UIViewController *)self.sourceViewController;
    UIViewController* destination = (UIViewController *)self.destinationViewController;

    CGRect sourceFrame = source.view.frame;
    sourceFrame.origin.x = -sourceFrame.size.width;

    CGRect destFrame = destination.view.frame;
    destFrame.origin.x = destination.view.frame.size.width;
    destination.view.frame = destFrame;

    destFrame.origin.x = 0;

    [source.view.superview addSubview:destination.view];

    [UIView animateWithDuration:1.0
                     animations:^{
                         source.view.frame = sourceFrame;
                         destination.view.frame = destFrame;
                     }
                     completion:^(BOOL finished) {
                         UIWindow *window = source.view.window;
                         [window setRootViewController:destination];
                     }];
}