отключить увольнение контроллера uipopoverview - PullRequest
0 голосов
/ 01 августа 2011

UIPopoverController автоматически удаляется, когда мы касаемся или касаемся вне popoverview. Я хочу ограничить это автоматическое закрытие поповера.

Ответы [ 4 ]

8 голосов
/ 16 августа 2011
self.myPopovercontroller.passthroughViews=[NSArray arrayWithObject:self.view];
4 голосов
/ 15 августа 2013

Дубликат ", есть ли способ НЕ закрывать поповер при нажатии за его пределами? "

Существует очень простое и правильное решение.В контроллере представления, который представляет ваш UIPopoverController, соответствует протоколу UIPopoverControllerDelegate и реализуйте следующий метод делегата.Я только что проверил это, и он не позволяет popover отклоняться.

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    return NO;
}

Просто убедитесь, что вы установили делегат вашего контроллера popover на контроллер представления, который реализует это.

Вы можетеотклонить поповер, используя метод [popoverController dismissPopoverAnimated:NO];.

3 голосов
/ 01 августа 2011

Реализуйте popoverControllerShouldDismissPopover: в делегате, и вы можете остановить его исчезновение, если вы этого не хотите.

3 голосов
/ 01 августа 2011

Прочтите документацию UIPopoverController .В частности ...

При отображении касания за пределами всплывающего окна автоматически закрывают всплывающее окно.Чтобы позволить пользователю взаимодействовать с указанными представлениями и не отклонять всплывающее окно, вы можете назначить одно или несколько представлений свойству passthroughViews.Нажатие внутри всплывающего окна не приводит к автоматическому отключению всплывающего окна.Ваш код контроллера представления и просмотра должен явно обрабатывать действия и события внутри всплывающего окна и вызывать метод dismissPopoverAnimated: при необходимости.

...