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

问题描述 投票:12回答:2

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

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

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

我怎么解决这个问题?

谢谢大家!

ios ipad uibarbuttonitem popover
2个回答

48
投票

在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)
© www.soinside.com 2019 - 2024. All rights reserved.