Поскольку UIPopoverController считается модальным, поведение по умолчанию соответствует описанному вами: сначала вы должны закрыть поповер, прежде чем взаимодействовать с представлением под ним.
Однако вы можете взаимодействовать с представлениями в поповере.присваивая его passthroughViews
свойству:
UIPopoverController Reference Reference :
При отображении касания за пределами всплывающего окна автоматически закрывают всплывающее окно.Чтобы позволить пользователю взаимодействовать с указанными представлениями и не отклонять всплывающее окно, вы можете назначить одно или несколько представлений свойству passthroughViews.
passthroughViews
Массивпредставления, с которыми пользователь может взаимодействовать, пока отображается всплывающее окно.
@ property (nonatomic, copy) NSArray * passthroughViews
Обсуждение
Когда всплывающее окно активно, взаимодействует сдругие виды обычно отключены, пока поповер не будет отклоненПрисвоение массива представлений этому свойству позволяет обрабатывать касания вне всплывающего окна соответствующими представлениями.
Таким образом, вы должны иметь возможность взаимодействовать с вашим MapView, пока отображается всплывающее окно.
Вы можете отклонить отображаемый в данный момент всплывающий элемент, когда выберете другую аннотацию, вызвав dismissPopoverAnimated:
dismissPopoverAnimated:
Отклонить всплывающее окно программно.
- (void) dismissPopoverAnimated: (BOOL) animated
Параметры
animated Укажите YES, чтобы анимировать увольнение всплывающего окна, или NO, чтобы немедленно отменить его..
Обсуждение
Вы можете использовать этот метод для программного отклонения всплывающего окна в ответ на нажатия внутри всплывающего окна.При нажатии за пределы содержимого всплывающего окна оно автоматически закрывается.