Панель поиска не работает iPhone Xcode 4.2

Я использую этот код для строки поиска, но он не показывает никаких результатов.

in viewdidload метод:

filteredListitems = [[NSMutableArray alloc] initWithArray:listVehicles]; 

методы поиска:

 -(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { if ([searchText length] == 0) { [filteredListitems removeAllObjects]; [filteredListitems addObjectsFromArray:listVehicles]; }else { [filteredListitems removeAllObjects]; for (NSString * string in listVehicles) { NSRange r = [string rangeOfString:searchText options:NSCaseInsensitiveSearch]; if (r.location != NSNotFound) { [filteredListitems addObject:string]; } } } [listTable reloadData];} -(void)searchBarSearchButtonClicked:(UISearchBar *)aSearchBar { [searchBar resignFirstResponder]; } 

и код для каждой ячейки:

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"vlCell"; VehicleListCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSLog(@"Cell Created"); NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"VehicleListCell" owner:nil options:nil]; for (id currentObject in nibObjects) { if ([currentObject isKindOfClass:[VehicleListCell class]]) { cell = (VehicleListCell *)currentObject; } } UILongPressGestureRecognizer *pressRecongnizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(tableCellPressed:)]; pressRecongnizer.minimumPressDuration = 0.5f; [cell addGestureRecognizer:pressRecongnizer]; [pressRecongnizer release]; } cell.textLabel.font = [UIFont systemFontOfSize:10]; [[cell ignition] setImage:[UIImage imageNamed:@"ignition.png"]]; [[cell direction] setImage:[UIImage imageNamed:@"south.png"]]; NSString *cellValue = [filteredListitems objectAtIndex:indexPath.row]; cell.licPlate.text = cellValue; return cell; 

}

Я пробовал панель поиска с контроллером отображения, он работал нормально, но проблема заключалась в том, что он показывал собственное табличное представление для фильтрованных результатов поиска, тогда как я использую пользовательскую ячейку для отображения разных столбцов в таблице следующим образом:

введите описание изображения здесь

Мне нужен тот же вид, что и выше, при поиске или после того, как поиск выполнен

а после поиска я получаю это представление

введите описание изображения здесь

См. Разницу между табличными представлениями, так как в заголовках поиска исчезают, поэтому кто-то предложил мне использовать только навигатор без контроллеров дисплея.

Пожалуйста, направляйте меня так, чтобы я решил эту проблему

Вы должны использовать Контроллер отображения поиска.

Ключ в том, что он вызовет ваши методы просмотра данных и делегирования в виде таблицы, но передаст вам представление таблицы в качестве первого параметра.

Например (если вы храните ссылку на представление таблицы в переменной экземпляра с именем yourTableView ):

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (tableView == yourTableView) { return [listVehicles count]; } else { // handle search results table view return [filteredListItems count]; } } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *cellValue = nil; if (tableView == yourTableView) { cellValue = [listVehicles objectAtIndex:indexPath.row]; } else { // handle search results table view cellValue = [filteredListItems objectAtIndex:indexPath.row]; } static NSString *CellIdentifier = @"vlCell"; VehicleListCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSLog(@"Cell Created"); NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"VehicleListCell" owner:nil options:nil]; for (id currentObject in nibObjects) { if ([currentObject isKindOfClass:[VehicleListCell class]]) { cell = (VehicleListCell *)currentObject; } } UILongPressGestureRecognizer *pressRecongnizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(tableCellPressed:)]; pressRecongnizer.minimumPressDuration = 0.5f; [cell addGestureRecognizer:pressRecongnizer]; [pressRecongnizer release]; } cell.textLabel.font = [UIFont systemFontOfSize:10]; [[cell ignition] setImage:[UIImage imageNamed:@"ignition.png"]]; [[cell direction] setImage:[UIImage imageNamed:@"south.png"]]; cell.licPlate.text = cellValue; return cell; } 

Я использовал Search View Controller в своем приложении и реализовал этот метод делегирования

 - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { if(self.searchDisplayController.searchBar.text.length>0) { self.isSearching=YES; NSString *strSearchText = self.searchDisplayController.searchBar.text; NSMutableArray *ar=[NSMutableArray array]; // correctly working ! Thanx for watching video ! for (int i=0; i<self.arOriginal.count; i++) { NSString *strData = [self.arOriginal objectAtIndex:i]; NSRange rng = [strData rangeOfString:strSearchText options:NSCaseInsensitivePredicateOption]; if(rng.length > 0){ [ar addObject:strData]; } } self.arFiltered=[NSArray arrayWithArray:ar]; } else { self.isSearching=NO; } return YES; } 
  • Xcode 4.2 - загрузчик приложений: невозможно проверить размеры значков, значок не найден
  • Использование статических ячеек в раскадровке UIView с Xcode 4.2
  • ARC и ASIHTTPRequest
  • Не удалось выровнять detailTextLabel TableViewController в IOS
  • Навигация с UIViewController на Appdelegate
  • Проблема с сигнатурой канала IOS SDK для Facebook после проверки подлинности
  • Xcode 4 - ошибка clang
  • Как скрыть цифровую клавиатуру?
  • Анализ XML-данных в NSMutableArray iOS - iPhone
  • Создайте файлы сборки (.app и .mobileprovision) для использования в утилите конфигурации iPhone
  • Изменение поведения сенсорного интерфейса UIView с помощью Xcode 4.2?
  • Interesting Posts

    Содержимое CALayer выходит за рамки – iOS

    Идентификатор приложения NSSearchPathForDirectoriesInDomains Изменения для каждого запуска и обновления симулятора на реальном устройстве

    отображение изображений в 3 UIButton с использованием содержимого одного массива

    Msgstr "Изображение:

    Как реализовать класс NSManagedObject, соответствующий Mappable

    Как исправить проблемы с клавиатурой с помощью Cordova 3.1 на iOS?

    Общие сведения о блоке распределения памяти инструментов в iOS

    Объектив C, поток 1 Полученный программный сигнал SIGABRT

    Название многострочной навигационной панели

    iOS8 сегодня виджет представления не показывает UITableViewController

    Каково цветовое пространство по умолчанию для UIColor?

    Запись в plists в iOS 5.0.1

    AVPlayer "Не удается завершить действие"

    Xcode | Зачем использовать файл экрана запуска поверх исходного изображения?

    Clickable Link to Custom Route из Google Maps в приложение для iOS

    Давайте будем гением компьютера.