不平衡调用ViewController具有自己的转换

时间:2015-06-26 08:55:02

标签: ios objective-c uiviewanimationtransition

我想动画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的开始/结束外观转换的不平衡调用。

怎么了?

1 个答案:

答案 0 :(得分:1)

我不知道你出席第二个VC的时间和地点,但我也一样 之前错了。

就我而言,presentViewController正在等待其他行动。

尝试

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

希望这对你有所帮助。