Używam UISearchController w iOS 8 z następującym intializaiton w viewDidLoad kontrolera widoku wbudowanego w kontroler tabUISearchController sprawia, że kontroler czarny
_searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
_searchBar = _searchController.searchBar;
[_searchController.searchBar sizeToFit];
_searchController.searchBar.delegate = self;
_searchController.searchResultsUpdater = self;
_searchController.dimsBackgroundDuringPresentation = NO;
_searchController.hidesNavigationBarDuringPresentation = NO;
self.definesPresentationContext = NO;
_shopsTable.tableHeaderView = _searchController.searchBar;
I zostały wdrożone
- (void) updateSearchResultsForSearchController:(UISearchController *)searchController
i (void)filterContentForSearchText:(NSString *)searchText
i wyszukiwanie działa poprawnie, tabela jest poprawnie aktualizowana, itp.
Ale!
Jeśli przełączę zakładki, gdy kontroler wyszukiwania jest aktywny (po prostu dotykając paska wyszukiwania lub z jakimś tekstem) do innej karty, a następnie wracam do karty wyszukiwania, otrzymuję pusty ekran z tylko paskiem wyszukiwania, np. to
W tym przypadku, mogę szukać rzeczy, które zaczynają się lar
, który wrócił wyświetlanych wyników i ich correcly. Ale jeśli przełączę karty i wracam do zakładki wyszukiwania, otrzymuję pusty ekran w ten sposób. Jedynym sposobem powrotu kontrolera do jego pierwotnego stanu jest wykonanie _searchController.active = NO
. Ale jeśli użytkownik chce zachować to wyszukiwanie, nie mogę go po prostu dezaktywować.
Jestem pewien, jestem brakuje czegoś, ale ponieważ nie ma wiele do zrobienia w UISeachController, nie mogę dowiedzieć się, co jest przyczyną tego ..
można proszę dostarczyć przykładowy kod celu c, utknąłem z tym samym problemem? Jestem bardzo nowy w rozwoju IOS. Mam oddzielny kontroler widoku dla wyszukiwania oraz głównej listy. to jest przyczyną problemu. – Amith