UIViewController iOS8中的自定义转换

时间:2014-11-04 09:07:11

标签: ios xcode animation uiviewcontroller uiviewanimationtransition

有没有人有任何想法,这不再是iOS8中的自定义翻转动画,而是在iOS7中。

在iOS8中,我只是看到没有动画的视图,但是当视图被取消时 我确实得到了自定义翻转过渡。它就像忘记动画一样,但是当它被解雇时它会记得。

任何帮助都会受到赞赏,这让我疯狂。

- (void) animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext {

    UIView *containerView = [transitionContext containerView];

    UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
    [containerView addSubview:fromVC.view];

    UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
    [containerView addSubview:toVC.view];

    UIViewAnimationOptions animationOption = ([toVC.presentedViewController isEqual:fromVC])?UIViewAnimationOptionTransitionFlipFromLeft:UIViewAnimationOptionTransitionFlipFromRight;

    if ([toVC class] == [ClockViewController class]) {

        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

    }

    [UIView transitionFromView:fromVC.view
                        toView:toVC.view
                      duration:0.7f
                       options:animationOption
                    completion:^(BOOL finished){
                        [transitionContext completeTransition:YES];
                    }];

}

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题,请找出解决我问题的方法。

添加了[CATransaction commit];在过渡之前,它现在有效。

  • (void)animateTransition:(id)transitionContext {

    UIView * containerView = [transitionContext containerView];

    UIViewController * fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; [containerView addSubview:fromVC.view];

    UIViewController * toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; [containerView addSubview:toVC.view];

    UIViewAnimationOptions animationOption =([toVC.presentedViewController isEqual:fromVC])?UIViewAnimationOptionTransitionFlipFromLeft:UIViewAnimationOptionTransitionFlipFromRight;

    [CATransaction commit];

    [UIView transitionFromView:fromVC.view                     toView:toVC.view                   持续时间:0.7F                    选项:animationOption                 完成:^(BOOL完成){                     [transitionContext completeTransition:YES];                 }];

}