Панель поиска в uitableview Не работает - PullRequest
0 голосов
/ 17 февраля 2012

Я создал пользовательский UITableviewCell с тремя метками и передал значение каждой метке.До сих пор он работал нормально. Теперь я хочу добавить панель поиска в моем приложении для поиска по всем меткам.Вот мой код ..

  - (void)viewDidLoad {
[super viewDidLoad];
  productArray=[[NSMutableArray alloc]init];
//Creating a temparay objects of Person
PersonDetail *personObj = [[PersonDetail alloc] init];
personObj.firstName = @"Adeem";
personObj.lastName = @"Basraa";
personObj.phoneNumber = @"123456789";

[productArray addObject:personObj];
[personObj release];

PersonDetail *personObj = [[PersonDetail alloc] init];
personObj.firstName = @"Ijaz";
personObj.lastName = @"Ahmed";
personObj.phoneNumber = @"987654321";

[productArray addObject:personObj];
[personObj release];

PersonDetail *personObj = [[PersonDetail alloc] init];
personObj.firstName = @"Waqas";
personObj.lastName = @"Noor";
personObj.phoneNumber = @"45656789";
    [productArray addObject:personObj];
[personObj release];

   searchData=[[NSMutableArray alloc]init];
[searchData addObjectsFromArray:productArray];

dataTable.delegate=self;
dataTable.dataSource=self;
[dataTable reloadData];





   -(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if ((bar.text !=nil)&&(![searchBar.text isEqualToString:@""])&&(bar.text.length>=3)) {

    searchText=bar.text;
    NSMutableArray *array=[[NSMutableArray alloc]init];

    for (NSString *stemp in productArray ) {

        NSRange titleResult=[stemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
        if (titleResult.length>0) {
            [array addObject:stemp];
        }

    }
    [bar setShowsCancelButton:YES];

    [self.searchData removeAllObjects];
    [self.searchData addObjectsFromArray:array];
    [self.dataTable reloadData];
    [array  release];


}else {
    [searchData removeAllObjects];
    [searchData addObjectsFromArray:productArray];
    [self.dataTable reloadData];

}

Проблема в том, что когда я начинаю печатать на панели поиска, приложение падаетЛюбая помощь будет оценена. Спасибо.

1 Ответ

2 голосов
/ 17 февраля 2012

Надеюсь, это поможет вам. В .h файле объявляем
NSMutableArray *array;

в .m файле записать следующее

- (void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText{ [copyListOfItems removeAllObjects]; if([searchText length] > 3) {

self.tableView.scrollEnabled = YES; [self searchTableView]; } else {

self.tableView.scrollEnabled = NO; } }

- (void) searchTableView {

array=[[NSMutableArray alloc]init]; NSString *searchText = searchBar.text;

for (NSString *sTemp in productArray) { NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];

if (titleResultsRange.length > 0) [array addObject:sTemp]; }

[self.tableView reloadData]; }

Я прошу прощения за любые ошибки в этом.

...