Iphone segue动画的CATTransition(iOS 7之前的风格)

Iphone segue动画的CATTransition(iOS 7之前的风格),iphone,ios,cocoa-touch,segue,Iphone,Ios,Cocoa Touch,Segue,我有一个自定义segue,尝试复制iOS 7之前的推送/弹出segue: 视图控制器并排设置动画,没有变暗。(真的有那么难吗!) 以下代码有效,但以下代码除外: 退出页面在退出时变暗 进入时进入页面变暗(移动到位后逐渐恢复正常) 这些图片说明了问题: 然后 有没有办法阻止这种变暗效果?我非常感谢您的帮助 -(void)perform { UIViewController *source = self.sourceViewController; UIWindow *window

我有一个自定义segue,尝试复制iOS 7之前的推送/弹出segue:

视图控制器并排设置动画,没有变暗。(真的有那么难吗!)

以下代码有效,但以下代码除外:

  • 退出页面在退出时变暗
  • 进入时进入页面变暗(移动到位后逐渐恢复正常)
这些图片说明了问题:

然后

有没有办法阻止这种变暗效果?我非常感谢您的帮助

-(void)perform
{
    UIViewController *source = self.sourceViewController;
    UIWindow *window = source.view.window;

    CATransition *transition = [CATransition animation];
    [transition setDuration:2.0];
    [transition setDelegate:self];
    [transition setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
    [transition setType:@"push"];
    [transition setSubtype:kCATransitionFromRight];

    [window.layer addAnimation:transition forKey:kCATransition];
    [window setRootViewController:self.destinationViewController];
}

这两个函数对我来说工作得很好,尽管代码与您的非常相似,但我希望它能有所帮助

+(void) modalRight:(UIViewController*)vc destvc:(UIViewController*)viewCtrl{
    CATransition *transition = [CATransition animation];
    transition.duration = 0.3;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush;
    transition.subtype = kCATransitionFromRight;
    [vc.view.window.layer addAnimation:transition forKey:nil];
    [vc presentModalViewController:viewCtrl animated:NO];
}

+(void) modalLeft:(UIViewController*)vc{
    CATransition *transition = [CATransition animation];
    transition.duration = 0.3;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush;
    transition.subtype = kCATransitionFromLeft;
    [vc.view.window.layer addAnimation:transition forKey:nil];
    [vc dismissModalViewControllerAnimated:NO];
}

这与我正在使用的非常相似,但不幸的是,在iOS 7中,它在其入口/出口处使ViewController变暗。这很烦人。我已经求助于设置viewController视图的动画来创建我的segue(没有那么整洁),而不是使用CATTransition。然而,我将保留这个问题,以防它对其他人有帮助。你得到解决方案了吗?不幸的是,我没有找到一个超级简单的解决方案。我已经求助于设置viewController视图的动画。(如果苹果能创建一个选项来移除这种不必要的阴影,那就太好了。)