2012-02-22 2 views
0

내부 모달 뷰 컨트롤러 팝 오버 닫기, 그때 통해이 팝 오버 내부 ABPeoplePickerNavigationController 제시 다음 팝 오버가이 단계에서 해제 할 수없는 것을I 내부 탐색 컨트롤러 팝 오버가

self.abPicker.modalPresentationStyle = UIModalPresentationCurrentContext; 
self.abPicker.modalInPopover = YES; 
[self presentModalViewController:self.abPicker animated:YES]; 

문제 때 나는 밖 popover의 영역을 누르십시오, 아무 일도 일어나지 않습니다.

아이디어가 있으십니까?

답변

0

대리인 (peoplePickerDelegate)을 지정하지 않았습니다. 델리게이트 이벤트 만이 제시된 뷰 컨트롤러를 닫을 수 있으므로 절대적으로 델리게이트가 필요합니다. 위임 이벤트는 ABPeoplePickerNavigationController에서 dismiss...으로 호출합니다.

결과로 나타나는 팝 오버가 모달이되고 싶지 않은 경우 왜 ABPeoplePickerNavigationController를 presentModalViewController으로 표시 했습니까? 그것은 모달적인 것입니다. 당신은 그것을 모달로 만들고 그것을 모달로 불평하고 있습니다. 이것은 얼굴에 자신을 때리는 것과 같고 얼굴이 맞았다 고 불평하는 것과 같습니다. (modalInPopover도 YES로 설정해야합니다.)

iPad의 일반적인 점은 ABPeoplePickerNavigationController를 인스턴스화하고이를 새로운 Popover 컨트롤러의보기 컨트롤러로 직접 사용하는 것입니다.

+0

예, 여기에 전체 코드가 누락되었습니다. 모든 대리자가 작동하고 버튼을 취소하고 연락처를 선택합니다. – artysx

+0

하지만 표준 동작은 외부 팝업을 누르면 사라져야하며 작동하지 않습니다. 모달보기 컨트롤러에 popover의 대리자를 다시 설정해야한다고 가정하지만 어디에서 이해할 수 있습니까? – artysx