UISearchController – клавиатура не отображается

Я использую UISearchController, и функция поиска работает, за исключением двух вещей. Возможно, они связаны: а) клавиатура не отображается. Поэтому я не могу нажать кнопку «Поиск». B) В моем основном TableView я получаю доступ к ячейке прототипа, которая имеет стиль «Subtitle». Когда поиск продолжается, ячейка, которая отображается, является стилем «Basic». В обоих случаях (TableViewController и SearchViewController) я использую один и тот же идентификатор ячейки.

Есть идеи? Вот некоторые из кода:

class OverviewTableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() let resultsController = SearchResultsController() resultsController.birds = birds searchController = UISearchController(searchResultsController: resultsController) //searchController.dimsBackgroundDuringPresentation = true let searchBar = searchController.searchBar searchBar.scopeButtonTitles = ["One", "Two"] searchBar.placeholder = "Search" searchBar.sizeToFit() tableView.tableHeaderView = searchBar searchController.searchResultsUpdater = resultsController 

и второй класс:

 class SearchResultsController: UITableViewController, UISearchResultsUpdating { var items: [Item] = [] var filtered: [Item] = [] override func viewDidLoad() { super.viewDidLoad() tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") } // MARK: - UISearchResultsUpdating Conformance func updateSearchResultsForSearchController(searchController: UISearchController) { //searchController.hidesNavigationBarDuringPresentation = true let searchString = searchController.searchBar.text let buttonIndex = searchController.searchBar.selectedScopeButtonIndex filtered.removeAll(keepCapacity: true) if !searchString.isEmpty { for item in items { ... } } self.tableView.reloadData() } } 

3 Solutions collect form web for “UISearchController – клавиатура не отображается”

У меня была такая же проблема, и в основном, если у вашего родительского класса есть UISearchController, а также ваш дочерний класс, и вы устанавливаете

self.definesPresentationController = YES

в вашем родительском классе контроллер поиска вашего дочернего класса не будет отображаться на клавиатуре. Понадобился время, чтобы понять, но это то, что происходит.

Способ исправить это – установить self.definesPresentationController = NO когда ваш родительский класс собирается нажать дочерний класс и установить self.definesPresentationController = YES в viewWillAppear вашего родительского класса …

Надеюсь, это тоже поможет кому-то.

В моем основном TableView я обращаюсь к ячейке прототипа, которая имеет стиль «Subtitle». Когда поиск продолжается, ячейка, которая отображается, является «основным» стилем

Убедитесь, что ячейки в SearchResultsController также имеют стиль «Subtitle».

Помимо того, что другие пользователи предложили, я также сделал следующее, и он работал:

searchController.definesPresentationContext = true

  • iOS UITableView «Попытка создать две анимации для ячейки»
  • Исправленный текст UITableViewCell исчезает при прокрутке таблицы
  • Остановить UITableView от автопрокрутки в iOS 8
  • Пользовательская ячейка для отображения многострочной метки с использованием UITableViewAutomaticDimension
  • Каков правильный способ удаления строки из UITableView?
  • Скрытие разделителя UITableView за содержимым (cell.imageView)?
  • Динамическая высота ячейки таблицы (отключено содержимое)
  • Печать UITableView с содержимым с экрана?
  • distanceInMeters Проблемы с массивами и сортировкой
  • Как создать табличное представление с изогнутой рамкой?
  • Я установил значение для ячейки UITableView, но почему он не отобразился?
  • Interesting Posts

    Плагин для просмотра PDF-документа в приложении на основе кордонов iOS

    Как локализовать изображения в Images.xcassets?

    SLComposeViewController

    Смена контроллеров просмотра после входа в Facebook

    Папки «Images.xcassets» не существует

    Что такое UITextField defaultColor в iOS8?

    Перекрестные указатели UIScrollViews – Могу ли я изменить поведение прокрутки?

    Файл заголовка не найден, но только для сборки устройства, а не для симуляторов.

    iOS TestFlight – внешние тестеры не уведомлены о новой конструкции

    Не удалось получить уведомление о состоянии жесты системы перед следующим касанием

    Обновление приложения на устройстве с удаленным приложением .xib

    Размер шрифта на универсальной раскадровке

    Как добавить временной интервал на 1 мин объекту NSDate в iPhone

    Почему я не могу перетащить UIBarButtonItem на панель навигации?

    Сбой динамического переноса Swift с запросом HTTP GET

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.