2010-02-02 5 views
6

모달보기를 표시하고 iPhone의 상태 표시 줄을 덮고 싶습니다.모달보기를 표시 할 때 iPhone 상태 표시 줄이 사라지나요?

모달보기 컨트롤러의 wantsFullScreenLayout 속성을 YES로 설정하려고했습니다. 부모님의 속성도 YES로 설정했습니다. 상태 표시 줄이 포함 된 주 창 콘텐츠 아래에 모달보기가 표시되기 때문에 이는 작동하지 않습니다.

내 두 번째 방법은 모달보기가 표시되기 직전 상태 표시 줄을 숨기는 방식으로 전체적으로 "wantsFullScreenLayout"기술을 떨어 뜨린 다음 모달보기를 닫은 후에 다시 켜는 것입니다. 이것은 끝까지 작동합니다 ... 모달 뷰의 부모 뷰가 잘못 배치됩니다 (탐색 막대의 일부가 상태 표시 줄 뒤에 숨겨 짐). [view setNeedsLayout] 호출은 아무 것도하지 않습니다.

이 문제는 어떻게 해결해야합니까?

감사합니다.

답변

2

- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animatedUIApplication 클래스에 있습니다. 이 같은

뭔가 :

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES]; 

멋진 페이드 애니메이션 상태 표시 줄을 숨길해야한다.

+0

이미 시도했습니다 (위의 두 번째 방법 참조). 상태 표시 줄을 숨기고 다시 표시하는 데 문제가 없습니다. 일단 문제가 다시 나타나면 뷰 레이아웃이 제대로 잡히고 있습니다. 감사. –

+0

보기의 크기를 간단하게 조정 하시겠습니까? 프레임을 (020320460)으로 설정 하시겠습니까? – Jasarien

+0

그게 효과가! 아직도 수동으로 설정해야하는 이유는 정확히 모르겠지만 ... 감사합니다! –

12

약화에 늦게 참여했지만 다른 사람들에게 약간의 문제를 줄 수 있다고 생각합니다.

저는 VC를 NavController에 푸시합니다 (VC를 PARENT라고 부름). 이제 탐색 막대 및 상태 표시 줄이 숨겨진 모달 화면 (어린이)을 표시하려고합니다. 많은 실험을 거친 후에 나는이 작품을 알고있다 ...

1) 나는 부모님에게서 presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated를 호출하여 어린이 VC를 제시하기 때문에, 탐색 막대는 더 이상 관여하지 않는다. (그것을 숨길 필요가 없다.)

2) CHILD VC 펜의보기 크기는 320x480입니다.

3) 아이 VC 단지 CHILD를 제공하기 전에) self.wantsFullScreenLayout = YES;

4 viewDidLoad에 설정하고, [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:YES];

5 상태 바) 상위에 위임 프로토콜 방식을 이용하여 하위 VC 기각 숨기기 dismissModalViewControllerAnimated:YES] 앞에 [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES];을 호출하여 탐색 바가 올바른 위치에 그려 졌는지 확인하십시오.

희망이 있습니다.

+0

+1). 내가 다른 단계없이 그것을 해결하고 상태 표시 줄을 다시 표시 -viewWillDisappear : 모달보기에서. –

+0

나를 위해 훌륭하게 작동합니다! 단계 4에 관한 – Chris

+2

의 메소드 서명은'- (void) setStatusBarHidden : (BOOL) hidden withAnimation : (UIStatusBarAnimation) animation'입니다. UIStatusBarAnimation 대신 두 번째 인수에 BOOL을 보냈습니다. –

관련 문제