ios - UIPopoverController popoverControllerDidDismissPopover 不起作用

标签 ios xcode swift xib uipopovercontroller

我正在 iPad 上通过 uibutton 展示弹出 Controller 。我将 UIPopoverController 的委托(delegate)设置为主视图 Controller 。 “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”函数之外声明才能使委托(delegate)函数正常工作。

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")

}

}

关于ios - UIPopoverController popoverControllerDidDismissPopover 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491670/

相关文章:

iOS:访问调用 Segue 的同一 UIViewController 实例

ios - 无法验证下载服务器。您可能正在遭受中间人攻击

ios - swift 启用使用 copy() 或 unshare method()

ios - 如何获取已使用自动布局设置的 UIView 的中心点 (CGPoint)

ios - 从电话号码中查找国家代码

ios - SceneKit:标尺刻度线/数字渲染

objective-c - 在无缝循环中为图像的无限滚动设置动画

iphone - 为什么我不能将子 Pane plist 文件添加到项目的 Settings.bundle 中?

swift - 为什么我的简单日期计算在 Swift 3.1 中有时会失败?

ios - 表格标题和第一个单元格之间的差距