jag*_*cow 66 cocoa-touch objective-c uikit ios ios8
当使用时关闭各种视图控制器时UIModalPresentationCustom
,在取消视图控制器后屏幕变为黑色,就像所有视图控制器已从视图层次结构中删除一样.
正确设置了转换委托,正确地请求并传递了animationControllerForPresentedController,并在动画结束后完成转换.
这个确切的代码在使用iOS 7 SDK编译时非常有效,但在使用iOS 8b5编译时会破坏
Sco*_*ser 178
这是因为您最有可能同时添加两个演示文稿
[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]
和提出的
[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]
在动态控制器的(void)animateTransition:(id)transitionContext方法中查看控制器到您的containerView.由于您使用的是自定义模式演示文稿,因此呈现视图控制器仍显示在显示的视图控制器下方.现在,因为它仍然可见,所以您不需要将它添加到容器视图中.而是仅将呈现的视图控制器添加到containerView.应该在animateTransition:方法中看起来像这样
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
}
Run Code Online (Sandbox Code Playgroud)
Lcs*_*sky 20
这是一个高票和被接受的答案误导人们的问题.长话短.
首先,不要使用UIModalPresentationCustom,它听起来不像.(详细)
其次,有一种新的方法可以在animateTransition中从/向视图中检索,不再使用像'fromVC.view'这样的东西.(为什么)
UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
UIView *toView = [transitionContext viewForKey:UITransitionContextToViewKey];
//swift
let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)
let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)
let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)
let toView = transitionContext.viewForKey(UITransitionContextToViewKey)
Run Code Online (Sandbox Code Playgroud)
现在黑屏应该消失.
我似乎遇到了同样的问题,我正在使用Xcode 6 beta5.
我在Google上搜索过,发现其他人也有同样的问题,他们说这是iOS 8中的一个严重错误,所以希望Apple能尽快解决这个问题.
https://github.com/TeehanLax/UIViewController-Transitions-Example/issues/5
归档时间: |
|
查看次数: |
20220 次 |
最近记录: |