Я разрабатываю для iOS 10 с помощью Xcode 8 (версия 8.1 (8B62), если быть точным), и я пытаюсь разработать контроллер вида, который отображает фиксированный выше tableView
. У меня исходный макет, но когда я активирую searchBar
, он полностью исчезает из моего представления.SearchController SearchBar Disappear from View
Вот вид иерархии с моей точки зрения контроллера:
View
|
|---- UISearchBar
|
|---- UITableView
и вот что она выглядит следующим образом:
Теперь проблема. Поскольку нет инструмента интерфейса Builder для включения UISearchController
, как это было для UISearchDisplayController
, я добавляю программный код searchBar
в свой интерфейс в моем методе контроллера моего вида, и я использую searchController.searchBar
для замены временного UISearchBar, который я использую в раскадровке :
// attribute to store the searchController
var searchController: UISearchController!
// temporary searchBar from storyboard
@IBOutlet weak var tempSearchBar: UISearchBar!
...
override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.searchBar.frame = tempSearchBar.frame
tempSearchBar.removeFromSuperview()
view.addSubview(searchController.searchBar)
}
Когда я запустить приложение и активировать searchBar
объект, прикрепленный к моему searchController
, он исчезает из поля зрения:
tableView
также смещается странно, но мой главный фокус - получить searchBar
, чтобы оставаться в пределах видимости. Я пробовал несколько разных вещей, чтобы сделать эту работу, но мне не повезло. Буду признателен за любую оказанную помощь. Я просто чувствую, что этого не должно быть трудно реализовать. Я могу сделать это просто отлично с объектом UISearchDisplayController
, но они устарели, и я стараюсь быть хорошим программистом и не использовать его.