Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么可以';过渡期间,您是否设置了modalPresentationStyle?_Ios - Fatal编程技术网

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
),以更改转换类型,在显示视图控制器之前,必须设置此属性。

对于将来的用户,此报价来自: