presentViewController在IOS 8中闪烁

时间:2014-08-18 20:02:41

标签: ios objective-c uiviewcontroller ios8

在iOS 7中,我们将自定义动画转换为新的视图控制器,完成动画:

[self.animatedView removeFromSuperview]; //superview == self.view, in this case
[self presentViewController:newController animated:NO completion:nil];

这在< = IOS 7中运行良好。我们也在使用dismissViewController:动画回原始时进行。但是,在iOS 8中,显示和关闭都会在动画结束和新视图外观之间显示一帧黑屏。有没有解决的办法?一切都已经在主线上发生了。

2 个答案:

答案 0 :(得分:0)

真的建议你应该采用适用于iOS 7及更高版本的UIViewControllerAnimatedTransitioning协议。它易于使用,并且可以进行任何过渡类型和长度的极其优化。无论如何,继续使用您自己的ios 6及以下动画,但如果您采用ios 7及更高版本的新协议,您的动画会有突飞猛进的改进。

查看UIViewControllerAnimatedTransitioning

上的文档

答案 1 :(得分:0)

我有同样的问题,我的修复是获得这两个类。

http://www.brightec.co.uk/blog/ios-7-custom-view-controller-transitions-and-rotation-making-it-all-work

轻松将它们导入项目并设置转换委托:

BTSlideInteractor *interactor = [[BTSlideInteractor alloc] init];
interactor.presenting = YES;

UIStoryboard *storyboard = self.storyboard;
ViewController *svc = [storyboard instantiateViewControllerWithIdentifier:@"home"];
svc.modalPresentationStyle = UIModalPresentationCustom;
svc.transitioningDelegate = interactor;
[self presentViewController:svc animated:YES completion:nil];

您可以自定义委托类的转换。此致