Peek和Pop与UISearchController
一起使用。但是,一旦使用updateSearchResults
搜索表格,Peek和Pop就会停止工作。
我扩展了苹果的Table Search with UISearchController demo以支持Peek和Pop,以下是示例:
问题在于当我开始搜索表格时,Peek和Pop不再起作用。它只是选择并突出显示它:
我对MainTableViewController
进行了如下更新:
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和Pop(甚至可能是键盘)?当表格最初显示所有数据时,我可以使其正常工作,但一旦开始使用搜索功能,它就无法正常工作了。如果您想运行它并查看问题,请单击此处附加工作示例。