2012-06-21 2 views
12

여기에 아주 이상한 점이 있습니다. 현재 모달보기 컨트롤러를 사용하여 탐색 모음에 배치 된 ViewController 맨 위에 내 MFMailComposer ViewController를 표시합니다. dismissModalViewController 상태 표시 줄 뒤에 부모보기가 표시되지 않습니다.

[self presentModalViewController:emailviewController animated:YES];

-(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 

    [self dismissModalViewControllerAnimated:YES]; 
} 

모든 것이 잘 작동 ... 내가 사용, 숨길하지만 난 내 MailComposer을 기각 할 때 원래 뷰 컨트롤러는 상태 표시 줄 뒤에 숨 깁니다.

setFrame 메서드를 사용하여 뷰 오프셋을 10으로 수정하려고 시도했지만 효과가 없습니다. (모달보기 컨트롤러가 나타나고 닫히기 전과 후에 피곤하다)

일시적으로 상태 표시 줄을 숨겨 봤지만 작동하지 않았다.

어떤 아이디어 나 제안은 높게 평가 될 것입니다 내가 self.navigationcontroller의 presentmodalviewcontrolle을 시도했지만 그건 너무 일을하지 않았다

... 이

편집

After dismissmodalviewcontroller called

: 대부분의 사람들이 나를 제공 수동으로 오프셋을 수정하라는 제안. 글쎄 그건 작동하지 않습니다. 왜냐하면 내가 내 viewDidLoad/viewWillapper 원래 viewcontroller 메서드의 경우 현재 모달보기 컨트롤러 전에 내보기를 이동하는 반면 모달보기 컨트롤러를로드 한 후에는 정상이됩니다.

  • (공극) viewDidAppear : 애니메이션 (BOOL) { CGRect 프레임 = self.navigationController.view.frame; frame.origin.y = 20; self.navigationController.view.frame = frame; }

Changing offset results in this

+0

원래 뷰 컨트롤 r 상태 표시 줄을 숨김 또는 아니오로 설정 했습니까? – Ladislav

+0

nope .. 아직 상태 표시 줄을 건드리지 않았습니다 –

+0

모달보기 컨트롤러뿐 아니라 원래보기 컨트롤러에서도 상태 표시 줄이 변경되지 않습니까? – Ladislav

답변

3

는 ViewDidAppear이 퍼팅보십시오 :

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; 

최악의 경우 항상 모달 뷰 컨트롤러를 해제 한 후에 만 ​​일어나는 경우에 afterFirstLaunch에 대한 부울 선언 .h 그리고 이것을 viewDidAppear에 넣으십시오 :

if(afterFirstLaunch){ 
     CGRect frame = self.navigationController.view.frame; 
     frame.origin.y = 20; 
     self.navigationController.view.frame = frame; 
} 
else { 
     afterFirstLaunch = true; 
} 
+0

그래도 문제가 해결되지 않으면 게시 코드가 도움이 될 수 있습니다. Interface Builder를 사용하여 두 뷰를 모두 작성합니까? 모달 뷰 컨트롤러를 어떻게 표현하고 있습니까? – WolfLink

+0

같은 문제가 있지만 실제로 작동하지 않았다 –

+0

보기 프레임을 이동하면 뷰 프레임이 모두 준비가 된 것처럼 보이기 때문에 매우 불쾌 해 보입니다. 보기가 나타나기 전에보기가 올바르게 배치되어야합니다. – Darren