2013-03-14 5 views
7

내 보편적 인 앱에서 우리 시스템의 기존 메모 목록 (간단한 웹 서비스를 통해 검색)을보고 새 메모를 작성할 수있는 섹션이 있습니다. 그들은 원한다. 그래서 아이폰의 경우 꽤 간단한 레이아웃, 새 항목을 추가하기위한 모달 뷰를 제시하는 NavigationBar의 "Add"버튼을 사용하여 목록을 표시하는 TableViewController입니다. iPad에서는 같은 레이아웃에 낭비되는 공간이 너무 많아서 popOver 메소드를 사용하여 popOver에 목록을 표시 한 다음 거기에서 추가하도록했습니다. 내 문제는 사용자가 PopOver보기 내에서 추가 단추를 클릭하면 모달보기가 팝업보기 내에서 표시되는 대신 전체 화면으로 표시된다는 것입니다. 여기 코드는 내가 지금까지 가지고있다 :현재 Popover View Controller보기 내부에서 Popover보기

-(void) AddButtonPressed:(id)sender { 

NewNoteVC *newNote = [[[NewNoteVC alloc] initWithNibName:@"NewNoteVC" bundle:nil] autorelease]; 
newNote.defaultClientID = defaultClientID; 
UINavigationController *navCon = [[[UINavigationController alloc] initWithRootViewController:newNote] autorelease]; 
if ([isPopOver isEqualToString:@"YES"]) { 
    [navCon setModalInPopover:YES]; 
    [self.navigationController setModalInPopover:YES]; 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 
else { 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 

}

은 "isPopOver"문자열이 바로이있는 TableView라는 이전 화면 (내가 더 나은 부울이를 전환 할 수 있습니다 알고에서 전송 된 자리 표시 자입니다 퍼포먼스 나는 이걸 실제 사용해 보자. 나는 내가 어딘가에서 어질러 댔다는 것을 안다. 나는 올바르게 작동하도록 설정해야하는지 모른다.

+0

[UIPopoverController 제시된 모덜로지가 iOS 5에서 작동하지 않음] (http://stackoverflow.com/questions/7806979/uipopovercontroller-presented-modally-doesnt-work-in-ios-5) – Till

답변

22

설정합니다.

navCon.modalPresentationStyle = UIModalPresentationCurrentContext; 

이렇게하면 모달보기 컨트롤러가 popover의 루트 컨트롤러처럼 popover를 채 웁니다.

+2

이것은입니다. 내가 필요한 설정, 감사합니다. –

2

presentViewController:animated:completion: 대신 presentModalViewController:animated:의를 사용하여 시도하고 당신은 뷰 컨트롤러의 modalPresentationStyle는 "현재 상황"으로 정의 할 필요가 self.navigationController.definesPresentationContext = YES