我想为LevelCompletedVC的过渡设置动画。
LevelCompletedVC应该从上到下。

这是我在GameViewController中的代码:

LevelCompletedViewController *lcvc = [self.storyboard instantiateViewControllerWithIdentifier:@"levelCompletedViewController"];

[self.view addSubview:lcvc.view];
[lcvc.view setFrame:self.view.window.frame];
[lcvc.view setTransform:CGAffineTransformMakeTranslation(0, -self.view.frame.size.height)];
[lcvc.view setAlpha:1.0];

[UIView animateWithDuration:0.7 delay:0.0 options : UIViewAnimationOptionTransitionFlipFromTop
           animations:^{
                    [lcvc.view setTransform : CGAffineTransformMakeTranslation(0, 0)];
                    [lcvc.view setAlpha:1.0];
           }
           completion:^(BOOL finished) {
                     [lcvc.view removeFromSuperview];
                     [self presentViewController:lcvc animated:NO completion:nil];
       }];


如果要显示第二个VC:

LevelCompletedViewController *lcvc = [self.storyboard instantiateViewControllerWithIdentifier:@"levelCompletedViewController"];


[self presentViewController:lcvc animated:NO completion:nil];


没有错误。

但是随着我自己的过渡,我得到了:

LevelCompletedViewController开始/结束外观转换的不平衡调用。

怎么了?

最佳答案

我不知道您何时或在何处展示第二张VC,但是我也一样
以前错了。

就我而言,presentViewController正在等待其他操作完成。

尝试

dispatch_async(dispatch_get_main_queue(), ^(void){
    LevelCompletedViewController *lcvc = [self.storyboard instantiateViewControllerWithIdentifier:@"levelCompletedViewController"];
    [self presentViewController:lcvc animated:NO completion:nil];
});


希望对您有帮助。

10-08 12:16