弹出窗口适用于 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)
在 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)