Tableview的Plistsearch

我有Plist这已被填充tableview扩大部分..现在我想search表…下面的图像,你可以看到什么事情发生时,我search任何东西。 。 只是因为我正在search它,但需要在cellforrowatindexpathsearch结果的一些变化….

请检查代码,让我知道如何searchplist ..应该为cellforrowatindexpath更改和noofrowsinsectionsearchplist

第一秒

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return [self.mySections count]; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSInteger rows = 0; if ([self tableView:tableView canCollapseSection:section] || !(tableView == self.searchDisplayController.searchResultsTableView) ) { if ([expandedSections containsIndex:section] ) { NSString *key = [self.mySections objectAtIndex:section]; NSArray *dataInSection = [[self.myData objectForKey:key] objectAtIndex:0]; return [dataInSection count]; } return 1; } else if(tableView == self.searchDisplayController.searchResultsTableView) { rows = [self.searchResults count]; return rows; } return 1; } -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection: (NSInteger)section { NSString *key = [self.mySections objectAtIndex:section]; return [NSString stringWithFormat:@"%@", key]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { //some changes required to display plst cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] ; } // Configure the cell... if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]) { cell.textLabel.text = [self.searchResults objectAtIndex:indexPath.row]; }else { NSUInteger section = [indexPath section]; NSUInteger row = [indexPath row]; NSString *key = [self.mySections objectAtIndex:section]; NSDictionary *dataForSection = [[self.myData objectForKey:key] objectAtIndex:0]; NSArray *array=dataForSection.allKeys; cell.textLabel.text = [[dataForSection allKeys] objectAtIndex:row]; cell.detailTextLabel.text=[dataForSection valueForKey:[array objectAtIndex:indexPath.row]]; } return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if ([self tableView:tableView canCollapseSection:indexPath.section]) { if (!indexPath.row) { // only first row toggles exapand/collapse [tableView deselectRowAtIndexPath:indexPath animated:YES]; NSInteger section = indexPath.section; BOOL currentlyExpanded = [expandedSections containsIndex:section]; NSInteger rows; NSMutableArray *tmpArray = [NSMutableArray array]; if (currentlyExpanded) { rows = [self tableView:tableView numberOfRowsInSection:section]; [expandedSections removeIndex:section]; } else { [expandedSections addIndex:section]; rows = [self tableView:tableView numberOfRowsInSection:section]; } for (int i=1; i<rows; i++) { NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i inSection:section]; [tmpArray addObject:tmpIndexPath]; } UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; if (currentlyExpanded) { [tableView deleteRowsAtIndexPaths:tmpArray withRowAnimation:UITableViewRowAnimationTop]; cell.accessoryView = [DTCustomColoredAccessory accessoryWithColor:[UIColor grayColor] type:DTCustomColoredAccessoryTypeDown]; } else { [tableView insertRowsAtIndexPaths:tmpArray withRowAnimation:UITableViewRowAnimationTop]; cell.accessoryView = [DTCustomColoredAccessory accessoryWithColor:[UIColor grayColor] type:DTCustomColoredAccessoryTypeUp]; } } } } - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", searchText]; self.searchResults = [self.mySections filteredArrayUsingPredicate:resultPredicate]; } -(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { UISearchBar * searchBar = [controller searchBar]; [self filterContentForSearchText:searchString scope:[[searchBar scopeButtonTitles] objectAtIndex:[searchBar selectedScopeButtonIndex]]]; return YES; } -(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption { UISearchBar * searchBar = [controller searchBar]; [self filterContentForSearchText:[searchBar text] scope:[[searchBar scopeButtonTitles] objectAtIndex:searchOption]]; return YES; } 

您在numberOfRows中使用的search结果应该用于numberOfSections因为您正在筛选部分标题而不是行。