2010-10-19 4 views
0

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

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

+0

В качестве FYI Xcode является инструментом разработки, а не языком или каркасом. Это не имеет никакого отношения к вашим недавним вопросам. –

ответ

2

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

1

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

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

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