示例项目: http://cl.ly/1C0N0E0f3n2P
我正在尝试在iOS 8中创建到视图控制器的自定义转换。我正在使用UIPresentationController
以及实现NSObject
的{{1}}子类,基本上遵循this tutorial
我还想在视图控制器出现时隐藏状态栏,但我不知道在这个范例中我要做什么。
每当我尝试在UIViewControllerAnimatedTransitioning
子类中的presentingViewController
上调用方法,或者使用UIPresentationController
子类中的键时,我总是会崩溃,让我相信我是不应该在这些方法上调用方法吗?
示例示例:
NSObject
那我到底要隐藏状态栏呢?我不想在我调用class CustomPresentationController: UIPresentationController {
override func presentationTransitionWillBegin() {
// Following line causes crash
(presentingViewController as ViewController).testFunction()
let darkOverlayView = UIView(frame: presentingViewController.view.bounds)
darkOverlayView.backgroundColor = UIColor(white: 0.0, alpha: 0.5)
containerView.addSubview(darkOverlayView)
}
}
的同时调用它,因为每次呈现时我都想隐藏状态栏,所以它应该包含在动画本身中,用于DRY原则。
答案 0 :(得分:1)
以下代码将修复崩溃。
let controller = presentingViewController as UINavigationController
let ctl = controller.topViewController as ViewController
ctl.testFunction()