在BarButtonItem打开时按下它时解除iPad UIPopoverController [英] Dismissing iPad UIPopoverController when BarButtonItem is pushed while it's open

查看:76
本文介绍了在BarButtonItem打开时按下它时解除iPad UIPopoverController的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在iPad上使用拆分视图,我有以下代码:

Using a split view on the iPad, I have the following code:

- (void) splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc {
  barButtonItem.title = @"Categories";
  NSMutableArray *items = [[toolbar items] mutableCopy];
  [items insertObject:barButtonItem atIndex:0];
  [toolbar setItems:items animated:YES];
  [items release];
  self.popoverController = pc;
}

这可以很好地显示按下按钮时的弹出窗口。但是,如果在按钮被按下的情况下按下良好的指导,我也想让按钮解除。我该怎么做呢? (即如果用户反复单击此按钮,则弹出窗口应该会隐藏其他每个按钮。)

This works well to show the popover when the button is pressed. However, I'd also like to have the popover dismiss if the button is pressed while it is already open to follow good guidelines. How would I go about doing this? (i.e. if the user repeatedly clicks this button, the popover should come and hide every other hit.)

推荐答案

当splitViewController显示弹出窗口时,下面的方法将被调用。
只检查是否为零,然后解除它:)

When splitViewController display popover, below method will be called. Just check if not nil, then dismiss it :)

- (void)splitViewController:(UISplitViewController*)svc popoverController:(UIPopoverController*)pc willPresentViewController:(UIViewController *)aViewController{
  if ([pc isPopoverVisible]) {
     [pc dismissPopoverAnimated:YES];
  }
}

这篇关于在BarButtonItem打开时按下它时解除iPad UIPopoverController的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆