在UIViewControllerAnimatedTransitioning中,“ to ViewController”具有视图,但“ to View”为nil

时间:2019-02-03 15:50:53

标签: ios swift transition

我正在学习如何在View Controller之间创建自定义(交互)过渡。我想以模态呈现时创建了安装程序。演示可以进行,但是动画结束后,解雇会以黑屏显示。

我注意到了一些奇怪的事情:

sting_to_test = "My String"
filtered_data = my_serie.isin(sting_to_test)

正如我期望的那样,func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { let fromV = transitionContext.view(forKey: .from) let toV = transitionContext.view(forKey: .to) let fromVC = transitionContext.viewController(forKey: .from) let toVC = transitionContext.viewController(forKey: .to) //.... } fromV引用了相同的视图(在调试器中检查,地址相同)。但是,fromVC.viewtoV,而nil具有一些(好像)有效地址才能显示有效视图。

那怎么可能? 他们不应该总是使用相同的值吗?

1 个答案:

答案 0 :(得分:0)

如果要访问toView控制器的视图,请使用

func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
        if let toVC = transitionContext.viewController(forKey: .to) {
            let toView = toVC.view.snapshotView(afterScreenUpdates: true)
        }
        //rest of code
    }

根据文档

  

此方法非常有效地捕获当前渲染的外观   视图并使用它来构建新的快照视图。

希望有帮助