UIPopoverController popoverControllerDidDismissPopover 不工作

UIPopoverController popoverControllerDidDismissPopover not working

我正在通过 uibutton 在 iPad 上显示弹出控制器。我将 UIPopoverController 的委托设置为主视图控制器。 "popoverControllerShouldDismissPopover" 和 "popoverControllerDidDismissPopover" 都没有被调用。我错过了什么吗?

class MainVC: UIViewController,UIPopoverControllerDelegate

@IBAction func btnTPD(sender: UIButton) {

    var vc = MyXIB(nibName: "MyXIB",bundle: nil)

    var nav = UINavigationController(rootViewController: vc)

    var popover = UIPopoverController(contentViewController: nav)
    popover.delegate = self
    popover.popoverContentSize = CGSize(width: 283, height: view.bounds.height * 0.6)
    popover.presentPopoverFromRect(sender.frame, inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: false)

}

func popoverControllerShouldDismissPopover(popoverController: UIPopoverController) -> Bool {

    println("SHOULD DISMISS")

    return true

}

func popoverControllerDidDismissPopover(popoverController: UIPopoverController) {

    println("DID DISMISS")

}

似乎我的 UIPopoverController 实例 (var popover) 需要在 "btnTPD" 函数之外声明,委托函数才能工作。

class MainVC: UIViewController,UIPopoverControllerDelegate {

var popover: UIPopoverController!

@IBAction func tapped(sender: UIButton) {

    var vc = MyXIB(nibName: "MyXIB",bundle: nil)

    var nav = UINavigationController(rootViewController: vc)

    popover = UIPopoverController(contentViewController: nav)
    popover.delegate = self
    popover.popoverContentSize = CGSize(width: 283, height: view.bounds.height * 0.6)
    popover.presentPopoverFromRect(sender.frame, inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: false)

}

func popoverControllerShouldDismissPopover(popoverController: UIPopoverController) -> Bool {

    println("SHOULD DISMISS")

    return true

}

func popoverControllerDidDismissPopover(popoverController: UIPopoverController) {

    println("DID DISMISS")

}

}