2012-02-22 3 views
0

У меня поповер с контроллером навигации внутри, то я представить ABPeoplePickerNavigationController внутри этого через пирог:Отклонить поповер с модальным контроллером вида внутри

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

Проблема заключается в том, что поповер не может быть отклонен на этой стадии, когда Я выхожу за пределы области, но ничего не происходит.

Любые идеи?

ответ

0

Вы забыли назначить делегата (peoplePickerDelegate). Только делегированные события могут отклонить представленный контроллер представления, поэтому вам абсолютно необходим делегат. События делегата вызывают dismiss... на ABPeoplePickerNavigationController.

Если вы не хотите, чтобы получившийся popover был модальным, то почему вы представили ABPeoplePickerNavigationController с presentModalViewController? Вот что значит быть модальным! Вы делаете это модальным, а затем жалуетесь, что это модально; это похоже на удары себя в лицо, а затем жалобы на то, что ваше лицо поражено. (Не говоря уже о том, что вы также установили для modalInPopover значение ДА, так что дважды ударяйте себя в лицо.)

Обычная вещь на iPad - создать экземпляр ABPeoplePickerNavigationController и использовать его непосредственно в качестве нового контроллера контроллера popover.

+0

Да, у меня есть (просто пропущен полный код здесь), все делегированные вещи работают, отменяют кнопку и выбирают контакт. – artysx

+0

Но стандартное поведение, когда вы нажимаете внешний popover, должно исчезнуть, не работает. Я предполагаю, что мне нужно снова настроить делегат popover для модального контроллера, но я не понимаю, где. – artysx