我想为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];
});
希望对您有帮助。