Поиск с использованием UISearchBar - PullRequest
0 голосов
/ 31 января 2012

У меня есть панель поиска, добавленная к панели навигации.Когда пользователь вводит слово и нажимает кнопку поиска (клавиатуру), мне нужно отобразить результаты в таблице, относящейся к поиску.

Когда я нажимаю «Поиск», я получаю пустые записи (они на самом деле идут внутриif условие в методе searchBarSearchButtonClicked: и добавление объекта животного тоже).Я думаю, что проблема в

[mutableArray addObject:animal];
...
self.animalArray = mutableArray;    
[self.tableView reloadData];

Мой полный код выглядит следующим образом.

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    [self.mutableArray removeAllObjects];
    for (Animal *animal in self.animalArray) {
        if ([[animal nameOfAnimal] isEqualToString:[searchBar text]] ) {                
            [mutableArray addObject:animal];
        }
    }
    self.animalArray = mutableArray;    
    [self.tableView reloadData];
    [searchBar resignFirstResponder];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    Cell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {        
        Animal *animal = [self.animalArray objectAtIndex:indexPath.row];        
        cell = [[Cell alloc] initWithStyle:UITableViewCellStyleDefault 
                           reuseIdentifier:CellIdentifier];
        cell.nameofani.text=animal.nameOfAnimal;   
        cell.oriofani.text=animal.originOfAnimal;  
    }
    return cell;
}

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Убедитесь, что вы правильно внедрили tableView:numberOfRowsInSection:, вернув [self.animalArray count] для таблицы результатов поиска.

1 голос
/ 31 января 2012

попробовать:

self.animalArray = [mutableArray copy];
...