2013-03-18 3 views
1

전체 화면을 표시하는보기 컨트롤러가 있고 다른 모달 VC를 표시 할 수있는 모달 VC는 상태 표시 줄이 필요하지만 모달 VC 컨트롤러를 닫은 후에 기본 VC에는 상태 표시 줄을위한 공간이 맨 위에 있습니다 그리고 심지어 내가 설정 :iOS : 상태 표시 줄이 필요한 모달 VC를 닫은 후 상태 표시 줄을 숨기는 방법은 무엇입니까?

[[UIApplication sharedApplication] setStatusBarHidden:YES] 

상태 표시 줄이 숨겨져 있지만, 공간이 여전히, 나는 기본 VC의보기의 프레임을 체크가 0에서 시작, 내가해야한다고 생각하지 않습니다 y 좌표가 -20에서 시작하도록 만드십시오. 그러나 그 밖의 다른 작업은 무엇입니까?

감사

답변

3

이 밖으로 시도 :이 경우

이 속성은, 화면의 경계를 뺀 으로 상태 표시 줄을 차지하는 영역이 포함 applicationFrame에 워드 프로세서

[[UIApplication sharedApplication] setStatusBarHidden:NO]; 
self.view.frame = [[UIScreen mainScreen] applicationFrame]; 

을 표시됩니다. 이 속성을 사용하면 응용 프로그램의 초기 윈도우 크기를 가져 오는 데 권장되는 방법 인 을 사용할 수 있습니다. 사각형은 점으로 지정됩니다.

보다 강력한 해결책을 얻으려면 상태 표시 줄 프레임 변경에 따라 프레임을 변경하십시오. 당신은 사용하여 이러한 알림 NSNotificationCenter 등록 할 수

-application:willChangeStatusBarFrame: 
-application:didChangeStatusBarFrame: 

을 또는 : 귀하의 응용 프로그램 위임 서브 클래스가 구현할 수

  • UIApplicationWillChangeStatusBarFrameNotification
  • UIApplicationDidChangeStatusBarFrameNotification
  • 나는 당신의 방법을 시도했습니다
+0

감사합니다. 사용해 보겠습니다. – hzxu

0

하지만, 그것은 저를 위해 작동하지 않았다, 나는 모달 VC가 해산 할 때,에서 그것을 이렇게하면 해결했다. 당신의 도움 어쨌든, 덕분에 나는이 좋은 해결책이 아니라는 것을 알고

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 
self.wantsFullScreenLayout = YES; 
[self.view layoutSubviews]; 

하지만, 내가 지금 생각할 수있는 유일한 일 :에 기본 VC의나는이 필요합니다.

관련 문제