У меня есть UISearchBar и UITableView на контроллере представления в моей раскадровке. Строка поиска находится над табличным представлением, чтобы она не прокручивалась. Моя проблема заключается в том, что инициализация UISearchController создает свой собственный экземпляр SearchBar, который не совпадает с тем, который я вручную добавил и разместил на своем раскадровке.Место UISearchBar выше tableview, но не в tableview или navbar
Как настроить мой раскадровки SearchBar, который был создан для меня моим UISearchController?
class ITSearchController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var searchBar: UISearchBar!
// So that the search results are displayed in the current controllers table view
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
// This didn't work
//var view = self.view.viewWithTag(777)
//view = searchController.searchBar
// This works but isn't what I want
//tableView.tableHeaderView = searchController.searchBar
// This works but places it in the nav section. Not what I want.
// self.navigationItem.titleView = searchController.searchBar
// This is what I want but doesn't work. Basically make the search bar on my storyboard equal to the one created.
searchBar = searchController.searchBar
}
}
Спасибо, это решение, которое я использовал. Похоже, вы должны иметь возможность указать существующий SearchBar через конструктор. Я думаю, что маска раскадровки всегда должна заканчиваться где-то ... – penner