ios - 无法关闭 Popover UITableViewController

标签 ios swift uipopovercontroller

我有一个 UITableViewController 显示为弹出窗口,如下所示

    popoverViewController = self.storyboard?.instantiateViewController(withIdentifier: "ItemsTableView") as? ItemsTableViewController
    popoverViewController?.itemeSelectionDelegate = self
    popoverViewController?.modalPresentationStyle = .popover

    let popoverPresentationViewController = popoverViewController?.popoverPresentationController
    let itemCell  = cell as! ItemContentCell
    popoverPresentationViewController?.permittedArrowDirections = UIPopoverArrowDirection.any
    popoverPresentationViewController?.sourceView = cell
    popoverPresentationViewController?.sourceRect = itemCell.itemName.bounds

    present(popoverViewController!, animated: true, completion: nil)

popoverViewController 是一个成员变量,当从 popoverViewController 选择一个项目时,我用它来关闭,我正在调用一个自定义委托(delegate)方法,我使用“关闭”方法来关闭它,但它有时有效,有时却不起作用。

 func itemSelected(item: Item) {
    print("selected item")
    popoverViewController?.dismiss(animated: false, completion: nil)
}

还有其他方法可以消除弹出窗口吗?

最佳答案

您必须实现UIPopoverPresentationControllerDelegate方法public func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool。 这是演示实现。

    extension YouViewController: UIPopoverPresentationControllerDelegate {

        func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool {
            return true
        }
    }

关于ios - 无法关闭 Popover UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44140481/

相关文章:

ios - iPad 中 PopoverView 中的 UIDatePicker

ios - 遇到这个警告该如何解决?

ios - 我无法在 swift 3 中将数据从模型类传递到 TableView ?

iphone - 获取某个 UITableViewCell 的屏幕坐标?

ios - NSMutableDictionary中的数字

swift - 协议(protocol)字典 Swift 4

ios - Popover 适配内容大小 IOS

ios - 如何仅在 UIWebView 中单击链接时启用后退按钮? (代码不会执行)

ios - 如何使用 View Controller 传回信息

ios - 在 Collection View 中准备 segue