Промених кода на примерния iOS проект на Apple TableSearch за да го използвате за търсене в уеб услуга чрез анализиране на съдържанието му. Всичко, което внедрих, работи добре, с изключение на един грозен детайл при извършване на търсене с помощта на SearchBar на SearchDisplayController. Промених поведението на SearchDisplayController, за да го накарам първо да извиква моята функция за търсене при натискане на бутона „Търсене“.
Проблемът е, че когато итерацията на търсене (която се изпълнява във фонов режим в NSOperationQueue) приключи, "searchResultsTableView" (на searchDisplayController) не се показва автоматично или не се присвоява полученото съдържание. Ако след това промените текста на SearchBar или докоснете бутона „Отказ“ от изгледа, който се появява, когато докоснете полето за търсене (вижте TableSearch), правилният TableView се появява с резултатите от търсенето. Просто искам тази стъпка да се изпълни веднага след приключване на операцията за търсене, така че преди да взаимодействате. На този етап в момента се показва етикетът „Няма резултати“. Методите "filterContentForSearchText" и "shouldReloadTableForSearchString" не са променени от оригиналния проект TableSearch.
Разгледах различни препратки към класове на SearchDisplayController и неговите атрибути, но все още не можах да намеря окончателно решение.
Опитах следното в раздел, който определено се повтаря след завършване на NSOperation, но изглежда не решава проблема.
[self.searchDisplayController.searchResultsTableView removeFromSuperview];
и
self.searchDisplayController.searchResultsTableView.hidden = YES;
И двете операции имат правилния изглед, който искам да се показва, НО превъртането е деактивирано, докато не промените състоянието, така че изгледът да е скрит отново. Възможно е обаче да изберете клетки на TableView. По принцип искам да имам това само с активирано превъртане...
Благодаря предварително за усилията!