Как мне отменить другие UIPopoverControllers при представлении нового? - PullRequest
0 голосов
/ 19 октября 2010

Если у меня есть несколько кнопок, которые запускают одни и те же всплывающие окна, как я могу закрыть уже видимый поповер перед отображением нового?

У меня есть локальная переменная self.popover, которая установлена ​​для текущего popovercontroller; я проверяю эту переменную popover, чтобы увидеть, если она видна; если он виден, я отклоняю его и затем представляю новый, но новый не становится видимым, пока я не прикоснусь к нему дважды.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Попробуйте удалить существующий поповер, используя [myPopover dismissPopoverAnimated: NO]

1 голос
/ 22 февраля 2011

Причина, по которой это происходит, заключается в том, что по умолчанию ваш поповер отключается каждый раз, когда происходит касание вне самого поповера; Само событие касания никогда не передается кнопке, поскольку оно «принадлежит» UIPopoverController. Как только это произойдет, вам нужно снова нажать кнопку, чтобы снова выскочить.

Лучшим решением было бы сохранить указатель на UIPopoverController и отправить NSArray с кнопками, от которых вы хотите отклонить / выскочить поповеры на контроллер.

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

...