19

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

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

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

我该如何解决这个问题?

谢谢大家!

4

2 回答 2

59

在 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)
于 2015-12-10T23:40:33.237 回答
25

你需要使用presentPopoverFromBarButtonItem:permittedArrowDirections:animated:.

于 2013-06-04T14:55:16.250 回答