我正试图解除任何当前可见的UIPopoverControllers,如果/当另一个UIBarButtonItem被点击时,如在iPad的页面上看到的那样,在样式/媒体/工具等之间点击。
我已经这样做了,但它太具体了。寻找通用的东西。
if ([popoverController isPopoverVisisble]) {
[popoverController dismissPopoverAnimated:YES];
}
谢谢!
答案 0 :(得分:2)
您是否设置了弹出控制器的passthroughViews属性?如果你这样做,然后点击在外面,popover将不会导致popover自动关闭,而是将被发送到该数组中的视图。您应该能够将UIBarButtonItem添加到此数组,然后关闭该处理程序中的popover。
答案 1 :(得分:1)
randallmeadows的回答不起作用。 UIBarButtonItem不是UIView的后代,这意味着你无法将它添加到passthroughViews。
我现在找到的唯一解决方案是使用
创建带有自定义UIButton的UIBarButtonItem UIBarButtonItem *b = [[UIBarButtonItem alloc] initWithCustomView:button]
然后
popoverController.passthroughViews = [NSArray arrayWithObject:b.customView];
但要做好准备,你将失去所有样式 - 你不能太容易地创建看起来像UIBarButtoItem的UIButton。
答案 2 :(得分:0)
[popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
popoverController.passthroughViews = @[];
为我工作