使用自定义视图控制器转换,我在哪里可以隐藏状态栏?

时间:2014-11-24 01:30:29

标签: ios swift uiviewcontroller ios8 uipresentationcontroller

示例项目: 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原则。

1 个答案:

答案 0 :(得分:1)

以下代码将修复崩溃。

let controller = presentingViewController as UINavigationController
let ctl = controller.topViewController as ViewController
ctl.testFunction()