2010-05-12 7 views
3

popover에 표시되는 뷰 컨트롤러에서 모달 뷰를로드하려고합니다. 모달보기가로드되지만 문제는 팝업보기가 아닌 기본보기로 전환된다는 것입니다. 그것은 뭔가 실종인가?popover에 모달 뷰를 표시합니다.

- (IBAction)myButton{ 
ModalVC *controller = [[ModalVC alloc] initWithNibName:@"ModalVC" bundle:nil]; 

[self presentModalViewController:controller animated:YES]; 
[controller release]; } 

답변

0

그것은 당신 때문에 presentModalViewController-self이다 : 나는 단순히

코드

가 울부 짖는 소리와 같은 특수 아무것도 아니다 ... 같은 팝 오버 내 모달 뷰를 제공 할 팝 오버 내 VC에서 그것을 시작 생각했다. 당신의 ViewController (자체)에 UIBarButtonItem을 추가하려고 할 :

[controller presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

senderUIBarButtonItem

+0

글쎄 나는 이미 코드가있는 곳의 popover에있는 viewcontroller라고 생각했다. 이미 popover에 viewcontroller를 연 barbutton이 있습니다. 내가 뭘하려는 것은 popover의 viewcontroller를 모달 전환을 사용하여 새로운 것으로 전환하는 것입니다. – sengbsd

+0

죄송합니다. 귀하의 질문에 대한 오해. 모달보기를로드하는 경험이 없습니다 _inside_ popover ... – ohho

18

인 위치를 presentModalViewController 호출하기 전에

controller.modalPresentationStyle = UIModalPresentationCurrentContext; 

을 추가하는 경우 : 애니메이션 당신의 ModalVC는해야 popover 내에 표시됩니다.

popover에서 모달로 뭔가를 표시하는 또 다른 방법은 modalInPopover 속성을 사용하는 것입니다.

+0

이들 중 어느 것도 팝업 뷰 내부에 카메라보기를 표시하지 않았습니다. –

+0

사실,이 대답은 요점을 놓치고있는 것 같습니다. –

+4

모달 컨트롤러 (제시 컨트롤러가 아님)에서 modalPresentationStyle을 UIModalPresentationCurrentContext로 설정하면 실제로 작동합니다. –

2

불행히도, 당신은이 일을 할 수없고 HIG에 위배됩니다. 애플의 View Controller Programming Guide

주에서 : 당신은 항상 모달 다른 뷰 컨트롤러를 표시하기 전에 눈에 보이는 팝 오버를 기각한다. 및 응용 프로그램에서 팝업을 사용하는 방법에 대한 구체적인 지침은 iOS 휴먼 인터페이스 지침 의 "Popover (iPad Only)"를 참조하십시오.

+3

iPad 용 메시지 앱에서 Apple이 직접 처리합니다. 연락처 (예 : 특수 벨소리)에 대한 특정 데이터를 편집 할 때 이미 표시된 팝업 오버에서 모달보기 컨트롤러가 표시됩니다. 그리고, 그것이이 말을 작동시키는 것은 의미가 있습니다. 그래서 나는 HIG의 말에도 불구하고 이것이 올바른 행동이라고 주장 할 것입니다. (사실, UIModalPresentationStyle "UIModalPresentationCurrentContext"는 Apple의 문서에 따라이 명시적인 목적으로 설계되었습니다.) –

+1

이 인용은 현재의 popover 뒤에 다른 뷰 컨트롤러를 닫지 않고 표시해서는 안된다고 가정합니다. popover 내에서 뷰 컨트롤러를 모달 식으로 표현하는 것과 관련이 없다고 생각합니다. – titaniumdecoy