2014-11-24 1 views
0

샘플 프로젝트 :http://cl.ly/1C0N0E0f3n2P사용자 정의보기 컨트롤러 전환에서 상태 표시 줄을 숨길 위치는 어디입니까?

내가이 UIPresentationController뿐만 아니라 기본적으로 this tutorial 다음, UIViewControllerAnimatedTransitioning를 구현하는 NSObject 서브 클래스를 사용하고 아이폰 OS 8에서보기 컨트롤러에 사용자 정의 전환을 만들려고 해요.

또한보기 컨트롤러가 표시 될 때 상태 표시 줄을 숨기고 싶지만이 패러다임에서 내가이 작업을 수행 할 위치를 알 수 없습니다.

나는 UIPresentationController 서브 클래스에 presentingViewController에 메소드를 호출하려고, 또는 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라고 부르는 동시에 그것을 부르고 싶지 않다. 나는 상태 표시 줄을 숨기고 싶을 때마다 애니메이션 자체에 익숙해 져야한다.

+0

실제로 시도한 코드와 충돌로 인한 스택 추적을 표시 할 수 있습니까? –

+0

샘플 초를 업로드합니다. –

+0

@AaronBrager 예제를 추가했습니다. –

답변

1

다음 코드는 충돌을 수정합니다.

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