【发布时间】:2017-05-23 16:36:29
【问题描述】:
我有一个 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 是一个成员 var,当从 popoverViewController 中选择一个项目时,我使用它来关闭它,我正在调用一个自定义委托方法,我正在使用“Dismiss”方法将其关闭,但有时它有时会起作用,但有时它不会.
func itemSelected(item: Item) {
print("selected item")
popoverViewController?.dismiss(animated: false, completion: nil)
}
还有其他方法可以消除弹出框吗?
【问题讨论】:
-
你是否在
itemSelected:中设置了一个断点来查看它是否真的被调用了?如果是这样,如果当时popoverViewController不为零? -
是的,它确实被调用并且 popoverViewController 不是 nil
标签: ios swift uipopovercontroller