我试图通过使用自定义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。
答案 0 :(得分:0)
您提到您通过按钮操作调用了segue。你也把segue绑在那个按钮上吗?如果是这样,你可能会两次调用segue。这导致第二次调用在第一次完成之前完成,从而导致“不平衡”。