SplitViewController模板手动显示弹出窗口?

Fas*_*ser 5 show ipad uisplitviewcontroller uipopovercontroller ios

我正在使用Apple提供的splitViewController模板.在具体行动中,我想展示一下rootViewController.不幸的是,我找不到一个方法来显示popover(以编程方式),就像点击栏按钮项时一样.

有任何想法吗?谢谢!

小智 12

您可以barButtonItem使用以下两种方法显示来自或使用您自己的rect 的popover :

[self.popoverController presentPopoverFromRect:(CGRect) inView:(UIView *) permittedArrowDirections:(UIPopoverArrowDirection) animated:(BOOL)];
[self.popoverController presentPopoverFromBarButtonItem:(UIBarButtonItem *) permittedArrowDirections:(UIPopoverArrowDirection) animated:(BOOL)]
Run Code Online (Sandbox Code Playgroud)

self.popoverController是我的情况是一个存储popover的ivar.我每次都在设置这个变量:

- splitViewController:willHideViewController:withBarButtonItem:forPopoverController:
Run Code Online (Sandbox Code Playgroud)

并将其设置回nil其对应的方法:

- splitViewController:willShowViewController:invalidatingBarButtonItem:
Run Code Online (Sandbox Code Playgroud)

继承我的代码:

- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {
    barButtonItem.title = @"42";
    self.navigationController.navigationBar.topItem.leftBarButtonItem = barButtonItem;
    self.popoverController = pc;
}

- (void)splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
    self.navigationController.navigationBar.topItem.leftBarButtonItem = nil;
    self.popoverController = nil;
}
Run Code Online (Sandbox Code Playgroud)