2012-12-29 46 views
3

我的問題類似於這個< question>,其中OP的目標是顯示一個UIBarButtonItems數組作爲navigationItem.rightBarButtonItems沒有barbuttons的輪廓/邊框。他的解決方案,使用UIButton自定義視圖初始化UIBarButtonItem,給出了所需的外觀,而UIButton目標/操作模式對於調用方法工作正常,但對定位UIPopoverController無效。現在在UIBarbuttonItems與iPad上的自定義視圖的彈出窗口,如在郵件應用程序?

我想要做的是在popover中呈現actionSheet(即在iPad上呈現actionSheet)和(從不同的按鈕)呈現打印控制器彈出窗口,彈出窗口箭頭指向選定的欄按鈕,因爲右邊的按鈕項目在iPad郵件應用程序中執行。

的問題是,用於呈現actionSheet或酥料餅的方法:

[UIActionSheet showFromBarButtonItem:bbtn animated:YES];

[UIPrintInteractionController presentFromBarButtonItem:printButton animated:YES completionHandler:completionHandler]

當一個UIButton發送者稱爲不工作。此外,從CGRect呈現的方法,例如,

[controller presentFromRect:rect inView:self.view animated:YES completionHandler:completionHandler]

不要在酥料餅的指針正確定位。

我已經嘗試使用UIView convertRect:toView:轉換按鈕幀,並從轉換矩形顯示彈出窗口,但我要麼做錯了,或者無法從UIBarButtonItem超級視圖沒有框架屬性正確轉換。顯示彈出窗口,但彈出窗口箭頭不指向所選按鈕。

回答

2

嘗試計算導航控制器視圖座標中已轉換的按鈕幀。 例如

CGRect convertedRect = [self.navigationController.view convertRect:button.bounds fromView:button]; 
[controller presentFromRect:convertedRect inView:self.navigationController.view animated:YES completionHandler:completionHandler]; 
0

我和你有完全相同的問題。 我發現的一個解決方案是爲UIBarButton項目的背景使用完全透明的圖像。

UIBarButtonItem *button = [[BWBarButton alloc] initWithImage:[UIImage imageNamed:imageName] style:UIBarButtonItemStylePlain target:target action:selector]; 

[button setBackgroundImage:[UIImage imageNamed:@"barimage"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

這裏barimage是一個60x60的透明圖像。我認爲你可以使用1x1px圖片。

祝你好運!

相關問題