Добавьте переменную UISearchController
var searchController : UISearchController!
и amp; затем добавьте код в viewDidLoad
searchController = UISearchController(searchResultsController: nil)
searchController.delegate = self
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false // displays tableview
let scb = self.searchController.searchBar
scb.tintColor = UIColor.white
scb.placeholder = "SEARCH"
scb.barTintColor = UIColor.white
if let textfield = scb.value(forKey: "searchField") as? UITextField {
textfield.textColor = UIColor.greenColor
if let backgroundview = textfield.subviews.first {
backgroundview.backgroundColor = UIColor.white
backgroundview.layer.cornerRadius = 10
backgroundview.clipsToBounds = true
}
}
if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
} else {
self.tableView.tableHeaderView = searchController.searchBar
searchController.searchBar.tintColor = UIColor.greenColor
searchController.searchBar.barTintColor = UIColor.greenColor
}
definesPresentationContext = true
ну да! Для компиляции это должно смочь разрешить все в общедоступном/защищать API. Иначе это не может осуществить ограничение. Я предполагаю, что это должно распознать, что типы видят, является ли дополнительный метод кандидатом на метод.
Вы могли попытаться поместить дополнительные методы в дочернее пространство имен, которое имеет "сеть" в нем - по крайней мере затем это не проникнет в обычный код. Я проверил, и это устраняет проблему. Это - хорошая практика для разделения пространств имен дополнительных методов, чтобы позволить вызывающей стороне управлять, когда они должны быть в объеме.
Для выполнения это должно было бы также смочь разрешить что-либо используемое внутренне, но не выставленное в API. Это - стандартное поведение.
@Marc дает Вам почему. Я предложил бы, чтобы как хорошая практика Вы вспыхнули что-либо, что относится к веб-классам в еще один блок, скажите Com. Компания. Расширения. Сеть в дополнение к Com. Компания. Расширения. Затем можно включать и в веб-проекты и только в невеб-расширения в других проектах.