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/

相关文章:

xcode - Xcrun PackageApplication,无法复制应用程序失败

ios - 错误域=NSCocoaErrorDomain代码=3840“字符周围的值无效

ios - Swift 包管理器 : How best to indicate platform dependent code?

ios - UIButton titleLabel 框架大小返回 CGSize,宽度和高度为零

ios - 访问其他类的核心数据数据库

xcode - 如何在 Swift 中编写构建前操作脚本?

c++ - 尝试使用 XCode 将 C++ 代码集成到 Swift 框架项目中 - 失败

iphone - 将 NSString 转换为 NSDate

swift - 为什么我在出现 fatal error : unexpectedly found nil while unwrapping an Optional value - occurs? 时会指向汇编代码

ios - Apple - 如果密码更改,我们如何在 iOS 应用程序中使用 Touch ID