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

  • Пользовательская ячейка просмотра таблицы в Swift, без раскадровки
  • Загрузка нескольких табличных представлений в UIView (UIView Controller)
  • Создание пользовательской линии разделителя UITableView
  • Это способ сохранить contentOffset после перезагрузки tableview?
  • Как запустить imagePicker в tableViewCell
  • Как управлять равной шириной для UITableViewRowAction в iOS8.0? (Больше, Удалить и т. Д. Действия)
  • Динамический заголовок заголовка UITableView (не заголовок раздела)
  • Как переключить UITableView и UICollectionView
  • установить рамку для индекса секции таблицы в быстрой программной
  • Пользовательская проблема прокрутки таблицы на ячейках
  • Как добавить изображения в ячейку UITableView?
  • Interesting Posts

    Я не могу загрузить свою ipa в Application Loader и получить следующую ошибку

    Как переименовать интерактивный файл записи (index.ios.js)

    Как сохранить большое (60 МБ +) изображение в библиотеке фотографий?

    Пользовательский вид TextField Как рассчитать сумму TextField

    Swift: разница между вызовами функций

    Как включить CoreMotion в приложении watchkit?

    Переключение камер медленнее в AVCaptureSession

    скопировать NSArray внутри пустого NSArray

    Xcode – тестовый класс Файл является частью модуля, игнорируя импорт

    Максимально допустимая частота опроса с использованием профиля Bluetooth LE GATT?

    Предоставление свойств UIButton для SKSpriteNode в SpriteKit

    Устранение неполадок преобразования координат MapKit в координаты экрана

    Как получить номер телефона входящего звонка в iOS Swift?

    Как определить, какая кнопка нажата, если они оба имеют один и тот же IBAction?

    webView: didFailLoadWithError -1004: Не удалось подключиться к серверу при подключении google plus в Phonegap ios

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