【发布时间】:2017-02-13 04:36:28
【问题描述】:
Peek and Pop 正在与UISearchController 合作。但是,一旦您开始使用 updateSearchResults 搜索表格,Peek and Pop 就会停止工作。
我已经扩展了 Apple 的 Table Search with UISearchController demo 以支持 Peek 和 Pop 作为示例:
问题是当我开始搜索表格时,Peek and Pop 不再起作用。它只是选择突出显示它:
我对@987654329@ 所做的更新是:
class MainTableViewController: BaseTableViewController, UISearchBarDelegate, UISearchControllerDelegate, UISearchResultsUpdating {
override func viewDidLoad() {
super.viewDidLoad()
...
if traitCollection.forceTouchCapability == .available {
registerForPreviewing(with: self, sourceView: tableView)
}
}
}
extension MainTableViewController: UIViewControllerPreviewingDelegate {
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
guard let indexPath = tableView?.indexPathForRow(at: location),
let cell = tableView?.cellForRow(at: indexPath),
let controller = storyboard?.instantiateViewController(withIdentifier: "DetailViewController") as? DetailViewController
else { return nil }
previewingContext.sourceRect = cell.frame
controller.product = products[0]
return controller
}
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
guard let controller = viewControllerToCommit as? DetailViewController else { return }
controller.product = products[0]
show(controller, sender: self)
}
}
搜索上下文控制器是否干扰了 peek and pop(甚至可能是键盘)?当表格最初是所有数据时,我可以让它工作,但一旦我开始使用搜索,它就不会工作。如果您想运行它并查看问题,我附上了working sample here。
【问题讨论】:
-
你有什么问题?
-
我用截图和更多细节更新了这个问题,谢谢 :)
-
我可以确认不是键盘阻挡了窥视和弹出。我驳回了它,问题仍然存在。
-
抱歉,我没有 3d touch iPhone,并且在模拟器中没有 xcode 提供的功能。我想帮助你,但很遗憾我不能为你感到抱歉
标签: ios swift uitableview uisearchcontroller peek-pop