Ios 为什么可以';过渡期间,您是否设置了modalPresentationStyle?
我有两个视图控制器,Ios 为什么可以';过渡期间,您是否设置了modalPresentationStyle?,ios,Ios,我有两个视图控制器,VCA和VCB。我使用presentViewController(VCB,动画:true,完成:nil)从VCA转换到VCB,然后在VCB中使用dismissViewControllerAnimated(true,完成:nil)返回。此转换由一个自定义的TransitionManager实例管理,其中VCA和VCB都有自己的TransitionManager实例作为其transitioningDelegate 我希望VCB显示在VCA的顶部,因此在VCB的初始化器中,我添加了
VCA
和VCB
。我使用presentViewController(VCB,动画:true,完成:nil)
从VCA
转换到VCB
,然后在VCB
中使用dismissViewControllerAnimated(true,完成:nil)
返回。此转换由一个自定义的TransitionManager
实例管理,其中VCA
和VCB
都有自己的TransitionManager
实例作为其transitioningDelegate
我希望VCB
显示在VCA
的顶部,因此在VCB
的初始化器中,我添加了:
convenience init() {
self.init()
modalPresentationStyle = .OverFullScreen
}
这很有效
但是,如果我从VCB
的初始化器中删除modalPresentationStyle=.OverFullScreen
,并尝试在UIViewControllerAnimatedTransitioning
委托的TransitionManager
类中设置它,如下所示
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
let transitionContext: UIViewControllerContextTransitioning!
let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)!
toVC.modalPresentationStyle = .OverFullScreen
// do animation ...
}
效果不起作用。请问,为什么会这样
编辑
似乎
modalPresentationStyle.rawValue
在VCB
的viewDidLoad
中是0(.FullScreen
),然后在VCB
的视图中是5(想要的值,OverFullScreen
),以更改转换类型,在显示视图控制器之前,必须设置此属性。对于将来的用户,此报价来自: