我想动画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
的开始/结束外观转换的不平衡调用。
怎么了?
答案 0 :(得分:1)
我不知道你出席第二个VC的时间和地点,但我也一样 之前错了。
就我而言,presentViewController
正在等待其他行动。
尝试
dispatch_async(dispatch_get_main_queue(), ^(void){
LevelCompletedViewController *lcvc = [self.storyboard instantiateViewControllerWithIdentifier:@"levelCompletedViewController"];
[self presentViewController:lcvc animated:NO completion:nil];
});
希望这对你有所帮助。