在我的应用程序中有两个关于使用popover的问题。首先是关于popoverControllerDidDismissPopover函数,它永远不会在我的应用程序中调用。我在这里检查了相同的主题,发现通常问题是代理没有设置。但在我的情况下,我有:
class MainTableViewController: ...,UIPopoverControllerDelegate {
并致电模态:
var popover: UIPopoverController!
点击我的手机点击事件
popover = UIPopoverController(contentViewController: popoverContent)
popover.delegate = self
popover.presentPopoverFromRect(currentCell.LabelCellTitle.frame, inView: currentCell.LabelCellTitle.superview, permittedArrowDirections: UIPopoverArrowDirection.Left, animated: true)
出现popover,但如果我在其外面点击方法:
popoverControllerDidDismissPopover
不会被调用。有任何想法吗?
第二个问题是当我再次点击我的手机以加载弹出窗口时出现错误。
Warning: Attempt to present <...24ModalTableViewController: 0x7fda8a55e440> on <...23MainTableViewController: 0x7fda8a62eb80> which is already presenting (null)
好吧,我猜这意味着ModalTableViewController仍然存在。我是否需要使用popoverControllerDidDismissPopover函数将其设置为nil?或者我该如何解决这个警告?
提前致谢。
编辑:
清理完我的问题后,1现在已经解决了(有点神秘) - 可能是XCode Beta中的一个错误。问题2仍然存在
EDIT2:
如果我现在在解雇后将内容和Popover设置为nil,则会出现以下错误:
func popoverControllerDidDismissPopover(popoverController: UIPopoverController!) {
self.popover = nil
self.popoverContent = nil
}
Application tried to represent an active popover presentation
为什么popover仍然有效?