在我的应用程序的ViewController中,我调用了transitionFromViewController,但在将闭包传递给completion:参数时总是得到以下错误。如何在Swift中将(可选)完成处理函数闭包传递给transitionFromViewController?
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)?)
在删除之前,应根据文档调用willMoveToParentViewController(nil)! – 2015-11-16 15:02:38