Ipad 超级控制器父级?

Ipad 超级控制器父级?,ipad,uipopovercontroller,Ipad,Uipopovercontroller,如何对uipopovercontroller的parentviewcontroller“执行选择器”? 我已从uiviewcontroller中打开uipopovercontroller,此uipopovercontroller包括其他uiviewcontroller。 我似乎无法从popover或“内部”视图控制器访问父视图控制器 UIPopoverController *popopverController = [self performSelector:@selector(_popover

如何对uipopovercontroller的parentviewcontroller“执行选择器”? 我已从uiviewcontroller中打开uipopovercontroller,此uipopovercontroller包括其他uiviewcontroller。 我似乎无法从popover或“内部”视图控制器访问父视图控制器

UIPopoverController *popopverController = [self performSelector:@selector(_popoverController)];
[popopverController dismissPopoverAnimated:YES];
我希望我说的很清楚

顺便说一句-parentViewcontroller不工作


谢谢

使用
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];

类似这样,但重要的一点是,视图控制器(由popover控制器管理)必须在呈现popover之前获取对父视图控制器的引用。

您可以使用私有方法从视图控制器获取父popover控制器

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

这正是我的想法。如果那是唯一的办法,我会做的。谢谢@AviTsadok您可以使用popoverController.delegate