ios - 如何将(可选的)完成处理程序关闭传递给 Swift 中的 transitionFromViewController?

标签 ios uiviewcontroller swift

在我的应用程序的 ViewController 中,我调用了 transitionFromViewController 但在将闭包传递给 completion: 参数时总是会出现以下错误。

Type '() -> Void' does not conform to protocol 'NilLiteralConvertible'

函数调用如下:

    self.transitionFromViewController(
        self.currentVC,
        toViewController: newController,
        duration: 0.2,
        options: UIViewAnimationOptions.TransitionCrossDissolve,
        nil,
        completion: { finished in
            fromViewController.removeFromParentViewController()
            toViewController.didMoveToParentViewController(containerViewController)
            toViewController.view.frame = containerViewController.view.bounds
    })

根据代码补全,方法签名如下:

transitionFromViewController(fromViewController: UIViewController, toViewController: UIViewController, duration: NSTimeInterval, options: UIViewAnimationOptions, animations: () -> Void(), completion: ((Bool) -> Void)?)

最佳答案

您不能将 nil 传递给 animations paramere () -> Void() 声明为非可选

如果需要,传递空的闭包

self.transitionFromViewController(
        self.currentVC,
        toViewController: newController,
        duration: 0.2,
        options: UIViewAnimationOptions.TransitionCrossDissolve,
        animations: { () -> Void in

        },
        completion: { finished in
            fromViewController.removeFromParentViewController()
            toViewController.didMoveToParentViewController(containerViewController)
            toViewController.view.frame = containerViewController.view.bounds
    })

关于ios - 如何将(可选的)完成处理程序关闭传递给 Swift 中的 transitionFromViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315222/

相关文章:

ios - 检测图像中的边缘

ios - 如何从内存中卸载 UIViewcontroller?

ios - 创建保持在顶部的叠加 View 的好方法是什么?

swift - 在 Swift 中使用 Realm 过滤,给我一个对象数组,但是当打印一个属性时,它给我一个空字符串

arrays - 如何求 NSMutableArray 所有元素的总和? swift

ios - 我们如何在另一个类中的数组或字典数据中获取 SBJSON connectionDidFinishLoading 方法

ios - 使用 Storyboard 设计 ViewController

ios - uiview 动画在 ios 7 中有效,但在 ios 6 中被剪裁和偏移

objective-c - 如何将字符串中的英语数字转换为 Objective-C 中的波斯语/阿拉伯语数字?

ios - View 不在状态栏下方且状态栏为黑色