自定义UIViewController使用自定义segue类进行转换

时间:2014-09-24 18:50:26

标签: xcode segue xcode6 uiviewanimation uiviewanimationtransition

我试图通过使用自定义segue和实现segue类来实现自定义过渡样式以淡入新的Viewcontroller。 我几乎设法实现这个,但每次我运行应用程序时都会收到警告/错误:

"非平衡调用开始/结束外观转换。"

虽然应用程序一直运行良好,但动画期间会有一点闪烁。

这是我的代码:

    @implementation BlurredFadeSague

- (void)perform{

    UIViewController *sourceViewController = self.sourceViewController;
    UIViewController *destinationViewController = self.destinationViewController;

    [sourceViewController.view addSubview:destinationViewController.view];

    destinationViewController.view.alpha = 0.0f;

    [UIView animateWithDuration:0.5f
                          delay:0.1f
                        options:UIViewAnimationOptionCurveLinear
                     animations:^{
                         destinationViewController.view.alpha = 1.0;
                     }
                     completion:^(BOOL finished){
                         [destinationViewController.view removeFromSuperview];
                         [sourceViewController presentViewController:destinationViewController animated:NO completion:NULL];
                     }];

}

@end

我将这种过渡称为IBAction:

 [self performSegueWithIdentifier:@"blurred" sender:self];

然而我得到了consol警告/错误:

 Unbalanced calls to begin/end appearance transitions for
 <DeviceControlViewController: 0x17597050>.

对任何帮助都会很高兴, 最好的vinc。

1 个答案:

答案 0 :(得分:0)

您提到您通过按钮操作调用了segue。你也把segue绑在那个按钮上吗?如果是这样,你可能会两次调用segue。这导致第二次调用在第一次完成之前完成,从而导致“不平衡”。