Уволить поповер с контроллером модального вида внутри - PullRequest
0 голосов
/ 22 февраля 2012

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

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

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

Есть идеи?

1 Ответ

0 голосов
/ 22 февраля 2012

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

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

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

...