PopOver от UIButton - PullRequest
       4

PopOver от UIButton

2 голосов
/ 21 января 2012

Вот мой код

-(IBAction)showMenu:(id)sender
{   
    Demo   *mainMenuTableView = [[Demo alloc] init];
    UIPopoverController *pop = [[UIPopoverController alloc]initWithContentViewController:mainMenuTableView];
    [pop setDelegate:self];

}

Демонстрация - это мой xib, содержащий контроллеры таблиц. Эта «демоверсия» прекрасно работает в полноэкранном режиме.

Я пытаюсь создать поповер с этим представлением, но я пробовал то, что я думаю, это любые другие решения для stackoverflow, но я все еще не могу определить, как создать и вызвать поповер ...

Я уверен, что я похож на одну или две строки кода ... Я надеюсь. Любая помощь будет оценена!

Thx!

Ответы [ 2 ]

12 голосов
/ 21 января 2012

После того, как вы создадите контроллер поповера, вы должны сказать ему, чтобы представить поповер.Вы можете использовать либо presentPopoverFromRect:inView:permittedArrowDirections:animated:, либо presentPopoverFromBarButtonItem:permittedArrowDirections:animated:.Например, я предполагаю, что вы подключили showMenu: как действие UIButton.Таким образом, вы можете добавить это в конце showMenu::

UIButton *button = (UIButton *)sender;
[pop presentPopoverFromRect:button.bounds
    inView:button
    permittedArrowDirections:UIPopoverArrowDirectionAny
    animated:YES];

Вам также нужно поместить ссылку на контроллер поповера в переменную экземпляра или свойство.В противном случае контроллер всплывающего окна будет освобожден при возврате showMenu:, что вызовет сбой.Спасибо Floydian за указание на это.

0 голосов
/ 27 апреля 2012

Вам необходимо сохранить переменную "pop"! Просто установите UIPopoverController «POV» в качестве вашей собственности и используйте приведенный ниже код в вашем IBAction.

self.POV = [[UIPopoverController alloc]initWithContentViewController:mainMenuTableView];
[self.POV presentPopoverFromRect:button.bounds
inView:button
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...