使用UIModalPresentationCustom
解除各种视图控制器时,在解除视图控制器后,屏幕将变黑,就好像所有视图控制器都已从视图层次 struct 中移除.
正确设置转换委托,正确请求并传递animationControllerForPresentedController,动画结束后完成转换.
此代码在使用iOS 7SDK编译时运行良好,但在使用iOS 8b5编译时会损坏
使用UIModalPresentationCustom
解除各种视图控制器时,在解除视图控制器后,屏幕将变黑,就好像所有视图控制器都已从视图层次 struct 中移除.
正确设置转换委托,正确请求并传递animationControllerForPresentedController,动画结束后完成转换.
此代码在使用iOS 7SDK编译时运行良好,但在使用iOS 8b5编译时会损坏
这是因为您最有可能将演示文稿
[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]
个
以及提交的
[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]
在动画控制器的(void)animateTransition:(id)transitionContext方法中查看控制器到容器视图.由于您使用的是自定义模式演示,因此presenting view controller仍显示在presented view controller下方.现在,由于它仍然可见,您不需要将其添加到容器视图中.而不是go containerView.在animateTransition:method中应该是这样的
UIView *containerView = [transitionContext containerView];
UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
// Boolean value to determine presentation or dismissal animation
if (self.presenting){
[transitionContext.containerView addSubview:toViewController.view];
// Your presenting animation code
} else {
// Your dismissal animation code
}