UIPopovercontroller Родитель? - PullRequest
       7

UIPopovercontroller Родитель?

9 голосов
/ 10 февраля 2011

Как можно "выполнить селектор" для контроллера parentview контроллера uipopover? У меня uipopovercontroller запущен из uiviewcontroller, и этот контроллер uipopover включает в себя другой контроллер uiview. Кажется, я не могу связаться с родительским контроллером представления из всплывающего окна или из «внутреннего» контроллера представления.

Надеюсь, мне ясно ...

Кстати - parentViewcontroller не работает ...

Спасибо!

Ответы [ 2 ]

8 голосов
/ 10 февраля 2011

Нет способа сделать это напрямую с UIPopoverController. Вам, вероятно, придется передать ссылку на ваш родительский контроллер представления контроллеру представления, которым вы управляете с помощью контроллера popover:

// Assumes these calls are made from within a view controller and that
// MyViewController has a property called previousViewController

MyViewController * myViewController = [[[MyViewController alloc] init] autorelease];
myViewController.previousViewController = self;
UIPopoverController * popoverController = [[[UIPopoverController alloc] 
    initWithContentViewController:myViewController] autorelease];

UIBarButtonItem * rightBarButtonItem = self.navigationItem.rightBarButtonItem;
[popoverController presentPopoverFromBarButtonItem:rightBarButtonItem
                          permittedArrowDirections:UIPopoverArrowDirectionDown
                                          animated:YES];

Что-то в этом роде, но важным моментом является то, что ваш контроллер представления (управляемый контроллером поповер) должен получить ссылку на ваш родительский контроллер представления, прежде чем вы представите поповер.

0 голосов
/ 28 мая 2013

Вы можете использовать приватный метод, чтобы получить родительский контроллер поповера от контроллера представления.

UIPopoverController *popopverController = [self performSelector:@selector(_popoverController)];
[popopverController dismissPopoverAnimated:YES];
...