如何在IOS中将UIBarButtonItem设置为弹出窗口的锚点?

时间:2013-06-04 14:53:57

标签: ios ipad uibarbuttonitem popover

我在我的iPad应用程序中显示一个弹出控制器:

[self.programMapPopOver presentPopoverFromRect:anchor.frame
                        inView:anchor.superview
                        permittedArrowDirections:UIPopoverArrowDirectionAny 
                        animated:YES];

我的问题是锚:我想设置一个UIBarButtonItem *作为它的锚点,但它不是UIView *,但是inView是一个view *参数。

我该如何解决这个问题?

感谢大家!

2 个答案:

答案 0 :(得分:46)

在iOS 8& 9,不推荐使用presentPopoverFromBarButtonItem:permittedArrowDirections:animated:方法。您需要在视图控制器的barButtonItem属性上设置popoverPresentationController属性。

let popover = UIViewController()
popover.modalPresentationStyle = .Popover
if let presentation = popover.popoverPresentationController {
    presentation.barButtonItem = navigationItem.rightBarButtonItem
}
presentViewController(popover, animated: true, completion: nil)

答案 1 :(得分:23)