2014-11-20 1 views
6

비슷한 질문에 대한 모든 해결책을 살펴본 결과 탭 제스처로 표시/숨기기를 시도했습니다.탭 제스처 (iOS8/Swift)를 사용하여 pageViewController의 상태 표시 줄을 표시하거나 숨기려면 어떻게해야합니까?

나는 plist에 View controller-based status bar appearance = NO을 설정했습니다.

DataViewController (페이지 뷰 컨트롤러)에 다음 코드를 시도하고 RootViewController에 :

let app = UIApplication.sharedApplication() 
app.setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.Fade) 

그것은 작동하지 않습니다.

이것은 UITabBarController에 삽입되어 있는데 차이가 있습니까?

또한, 나는 얻을 수있었습니다하여 RootViewController에서 상태 표시 줄을 숨기려면 다음도이 함수를 호출하지 않습니다

override func prefersStatusBarHidden() -> Bool { 
    return true 
} 

그러나 DataViewController, 오히려, 영구적으로이 방법을 숨길 만 할 수 있었다 켜기/끄기를 전환하는 것보다

아이디어가 있으십니까?

+0

작동해야합니다. 'setStatusBarHidden'을 호출하는 메소드가 호출되고 있습니까? –

+0

브레이크 포인트가 충돌합니다. –

답변

3

코드에서 해봤지만 모든 것이 잘 작동합니다. View controller-based status bar appearanceNO으로 설정되어 있는지 확인하십시오. 그리고 prefersStatusBarHidden()을 무시할 필요가 없습니다. 당신이 UIPageViewController를 사용하는 경우

+0

탭 제스처에서 상태 표시 줄을 표시하거나 숨길 수 있기를 원하며 단순히 숨기지 않습니까? –

+0

죄송합니다. 질문에 대한 오해. 내 코드에서 시도하고 다 잘 작동합니다. 내 업데이트 된 답변을 참조하십시오. – liuyaodong

+0

어디에서 전화 하시겠습니까? DataViewController에서? 또는 RootViewController? –

0

당신은 당신이 navigationController이있는 경우가 ViewDidLoad()

self.navigationController?.hidesBarsOnTap = true

너무

을 숨길 것이다 RootViewController

이 코드를 사용하여이 방법을 사용한다 navigationBar이 숨겨져 있거나 표시되지 않는 경우 상태 표시 줄을 숨기거나 표시하려면

override func prefersStatusBarHidden() -> Bool { 
     if self.navigationController?.navigationBarHidden == true { 
      return true 
     } 
     else 
     { 
      return false 
     } 
    }