2015-11-20 1 views
0

Через Storyboard я создал ViewController с UITableView и SegmentedControl сверху. Программно, я добавил SearchController в качестве заголовка TableView.iOS - segmentedControl исчезает после использования searchBar

Это то, что происходит при запуске приложения: Работает отлично. image1

image 2

Но когда я нажимаю на панели поиска, он уже путает немного. Это легко исправить, скрывая SegmentedControl.

Теперь проблема возникает, когда я закончу свой поиск: enter image description here

SegmentedControl исчезает. Всякий раз, когда я снова нажимаю на поисковую панель, он возвращается, как на картинке номер 2, но если я снова отменяю, он исчезает.

Я попытался удалить его из представления и добавить его снова, как только пользователь перестает искать, но ничего не меняет. Вот мой код:

searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 
searchController.searchResultsUpdater = self; 
searchController.dimsBackgroundDuringPresentation = NO; 
searchController.searchBar.delegate = self; 
self.tableView.tableHeaderView = searchController.searchBar; 
searchController.searchBar.scopeButtonTitles = @[]; 
self.definesPresentationContext = YES; 
[searchController.searchBar sizeToFit]; 

Что я могу изменить?

+0

Вы пытались не использовать сегментированный элемент управления и просто использовать панель видимости панели поиска uisearchcontroller? Это устранит многие проблемы с макетом, которые у вас есть. – beyowulf

+0

Довольно сумасшедший Я никогда не думал об этом. Он работает, но не полностью ... как я могу всегда отображать панель областей, даже если пользователь не ищет? –

ответ

0
searchController.searchBar.showsScopeBar = YES; 
+0

Это не работает. Это ничего не делает для меня. –

+0

Вы добавили его в конце всего этого: searchController = [[UISearchController alloc] initWithSearchResultsController: nil]; searchController.searchResultsUpdater = self; searchController.dimsBackgroundDuringPresentation = NO; searchController.searchBar.delegate = self; self.tableView.tableHeaderView = searchController.searchBar; searchController.searchBar.scopeButtonTitles = @ []; self.definesPresentationContext = YES; [searchController.searchBar sizeToFit] ;? – beyowulf

+0

Да, и в этом была проблема. Он работает сейчас. Пожалуйста, обновите свой ответ, чтобы сделать его более понятным и полным, и я его приму! Огромное спасибо. –