2010-06-30 109 views
1

我试图解雇任何当前可见UIPopoverControllers后解雇UIPopoverController(如果可见),如果/当作为样式/媒体/工具等之间的攻上时看到的页面对于iPad的UIBarButtonItem另一个被窃听轻敲的UIBarButtonItem

我已经这样做了,但它太具体了。寻找一些通用的东西。

if ([popoverController isPopoverVisisble]) { 
[popoverController dismissPopoverAnimated:YES]; 
} 

谢谢!

回答

2

您是否设置了popover控制器的passthroughViews属性?如果你这样做,那么在之外点击,弹出窗口不会导致弹出窗口自动关闭,而是会被发送到该数组中的视图。您应该能够将UIBarButtonItem添加到此数组,然后关闭该处理程序中的弹出窗口。

1

randallmeadows答案将无法正常工作。 UIBarButtonItem不是UIView的后代,这意味着你不能将它添加到passthroughViews。

我发现现在唯一的解决方案是与创建自定义的UIBarButtonItem的UIButton使用

UIBarButtonItem *b = [[UIBarButtonItem alloc] initWithCustomView:button] 

然后

popoverController.passthroughViews = [NSArray arrayWithObject:b.customView]; 

但要准备,你会失去所有的造型 - 你不能创建看起来像UIBarButtoItem的UIButton太容易了。我

0
[popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
popoverController.passthroughViews = @[]; 

作品