0

サンプル プロジェクト: http://cl.ly/1C0N0E0f3n2P

iOS 8 でビュー コントローラーへのカスタム トランジションを作成しようとしています。基本的にこのチュートリアルに従って、を実装するサブクラスとUIPresentationController同様に使用しています。NSObjectUIViewControllerAnimatedTransitioning

ビューコントローラーが表示されたときにステータスバーを非表示にしたいのですが、このパラダイムのどこでこれを行うべきかわかりません。

サブクラスでメソッドを呼び出そうとしたりpresentingViewControllerUIPresentationControllerサブクラスでキーを使用しようとすると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)
    }
}

では、ステータス バーを非表示にするには、どこに行けばよいのでしょうか。を呼び出すと同時にそれを呼び出したくありませんpresentViewController。表示されるたびにステータスバーを非表示にしたいので、DRY 原則のためにアニメーション自体にラップする必要があります。

4

1 に答える 1