2010-06-30 52 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 = @[]; 

作品

相關問題