Peek и Pop работают с UISearchController
. Однако Peek и Pop перестают работать после начала поиска в таблице с помощью updateSearchResults
.
Я добавил Apple Поиск таблиц с демонстрацией UISearchController для поддержки 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)
}
}
Контроллер контекста поиска вмешивается в просмотр и поп (может быть, даже клавиатура)? Я могу заставить его работать, когда таблица изначально все данные, но не раз я начинаю использовать поиск. Я приложил рабочий образец здесь, если вы хотите запустить его и увидеть проблему.