サンプル プロジェクト: http://cl.ly/1C0N0E0f3n2P
iOS 8 でビュー コントローラーへのカスタム トランジションを作成しようとしています。基本的にこのチュートリアルに従って、を実装するサブクラスとUIPresentationController
同様に使用しています。NSObject
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)
}
}
では、ステータス バーを非表示にするには、どこに行けばよいのでしょうか。を呼び出すと同時にそれを呼び出したくありませんpresentViewController
。表示されるたびにステータスバーを非表示にしたいので、DRY 原則のためにアニメーション自体にラップする必要があります。