弹出窗口适用于 iOS 8 但不适用于 iOS 7

Popover works in iOS 8 but not iOS 7

在 iOS 7 中运行我的应用程序时,我在尝试显示弹出窗口时遇到以下错误: [UIPopoverController dealloc] 在 popover 仍然可见时达到

它在 iOS 8.

中工作正常

我显示弹出窗口的代码是:

let vc = InfoViewController()
vc.setText(txt)
vc.modalPresentationStyle = .Popover
var w=vc.width
if w<200 {
   w=200
}
vc.preferredContentSize = CGSizeMake(w+30,height+30)
let popRect = rect
let aPopover =  UIPopoverController(contentViewController: vc)
aPopover.presentPopoverFromRect(popRect, inView: view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)

解决此问题的一个简单方法是将弹出窗口声明为 class 的成员变量并使用它。

var aPopover : UIPopoverController?

然后在该方法中将代码更改为:

self.aPopover =  UIPopoverController(contentViewController: vc)
self.aPopover!.presentPopoverFromRect(popRect, inView: view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)