2011-04-25 1 views
0

툴바가있는 OpenGL-ES 응용 프로그램이 있습니다.모달보기 컨트롤러 표시 및 해제 문제

optionsControllerOutlet.modalPresentationStyle = UIModalPresentationFullScreen; 
optionsControllerOutlet.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self.glView.superview addSubview:optionsControllerOutlet.view]; 
[self presentModalViewController:optionsControllerOutlet animated:YES]; 

내가보기를 해제하려고 할 때, 다음과 같은 코드가 실행됩니다 : : 내 도구 모음에서 구성 아이콘을 터치하면, 내 응용 프로그램은 다음 코드를 사용하여 구성 옵션의 무리와 함께보기를 표시

[self dismissModalViewControllerAnimated:YES]; 

전환에서 애니메이션이 누락된다는 점을 제외하면보기가 정상적으로 작동합니다. 보기를 닫으려고하면 아무 일도 일어나지 않습니다. 애니메이션이없고 왜 해고되지 않는지 아는 어떤 아이디어? 난 그냥보기 컨트롤러 주위에 내 머리를 포장하고 그들과 함께 일하는 방법. 나는 그것이보기를 해제하려면 다음 줄을 사용하여 작업을 얻을 수 있습니다,하지만이 제대로 작동 좀하고 싶습니다 :

[optionsControllerOutlet.view removeFromSuperview]; 

답변

1

당신은

[self.glView.superview addSubview:optionsControllerOutlet.view] 

을 필요가 없습니다 아니다 당신은 removeSubview 방법을 필요로한다. 모달보기는 프리젠 테이션을 담당합니다. 그래서 당신의 실수는 어딘가에 있을지도 모릅니다. 당신이 호출 해고에 관한

:

[self dismissModalViewControllerAnimated:YES]; 

이것은 의미는 즉 부모 뷰 컨트롤러 모달 뷰 컨트롤러를 presesnts 뷰 컨트롤러에 요청하실 수 있습니다. 일반적으로 부모를 대리자로 설정 한 다음 부모 내에서 현재 모달보기를 닫는 메서드를 호출합니다.

또는, 모달 뷰 자체에서 호출 할 경우, 그것을 실행할 수 있습니다 :

[self.presentingViewController dismissModalViewControllerAnimated : YES];

0

를 제거하십시오 [self.glView.superview addSubview : optionsControllerOutlet.view] ?

+0

내가 그렇게해도 여전히 실행되지만 내보기가 표시되지 않습니다. 또한이 응용 프로그램이보기 기반 응용 프로그램이 아니라 창 기반 응용 프로그램이라는 점을 추가해야합니다. 그래서이 방법에 어떻게 접근해야 하는지를 잘 모르겠습니다. – Davido