我正在使用 Apple 提供的 splitViewController 模板。在特定操作中,我想显示 rootViewController
。不幸的是,我找不到一种方法可以(以编程方式)显示弹出框,就像您点击栏按钮项时那样。
有什么想法吗?谢谢!
最佳答案
您可以使用以下两种方法从 barButtonItem
或您自己的 rect 显示弹出窗口:
[self.popoverController presentPopoverFromRect:(CGRect) inView:(UIView *) permittedArrowDirections:(UIPopoverArrowDirection) animated:(BOOL)];
[self.popoverController presentPopoverFromBarButtonItem:(UIBarButtonItem *) permittedArrowDirections:(UIPopoverArrowDirection) animated:(BOOL)]
self.popoverController
是我的案例,它是一个存储弹出框的 ivar。我每次都在以下位置设置此变量:
- splitViewController:willHideViewController:withBarButtonItem:forPopoverController:
并在其对应方法中将其设置回nil
:
- splitViewController:willShowViewController:invalidatingBarButtonItem:
这是我的代码:
- (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;
}
关于ios - SplitViewController 模板手动显示弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692898/