Eli*_*eth 3 popover ipad uisplitview uipopovercontroller
我正在使用拆分视图模板来创建一个简单的拆分视图,当然在纵向模式下有一个弹出窗口.我正在使用模板生成的默认代码,添加/删除工具栏项并设置弹出控制器并将其删除.这两个方法是splitViewController:willShowViewController:...和splitViewController:willHideViewController:...
我试图弄清楚如果用户在显示弹出窗口时点击工具栏按钮,弹出窗口就会消失.如果你点击弹出窗口外的任何地方,你可以使弹出窗口消失而不选择项目,但如果用户再次点击按钮我也想让它消失.
我被困的地方就是:似乎没有一种明显的,简单的方法来挂钩工具栏按钮的动作.我可以使用调试器告诉我在按钮上调用的操作是showMasterInPopover.我承认,我不熟悉以编程方式与选择器合作.
我可以以某种方式编写一个动作并将其设置在工具栏上,而不会覆盖已存在的动作吗?例如,添加一个调用现在那个的动作?或者我是否必须编写一个动作来显示/隐藏自己的弹出窗口(现在可能是由分割视图控制器在幕后进行的行为???).
或者我错过了一种简单的方法来将此行为添加到此按钮而不更改为我设置的现有行为?
谢谢!
所以事实证明,通过实现SplitViewController willPresentViewController方法单击barButtonItem可以使popover解除,如下所示:
- (void) splitViewController:(UISplitViewController *)svc
popoverController: (UIPopoverController *)pc
willPresentViewController: (UIViewController *)aViewController
{
if (pc != nil) {
[pc dismissPopoverAnimated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)