You are not reloading your table after searching
- (void)filterContentForSearchText:(NSString*)searchText
scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
self.mySections = [self.mySections filteredArrayUsingPredicate:resultPredicate];
[myTableView reloadData];
}
Edit
Your are not setting detail text label
if ([tableView isEqual:self.searchDisplayController.searchResultsTableView])
{
cell.textLabel.text = [self.searchResults objectAtIndex:indexPath.row];
cell.detailTextLabel.text=[dataForSection valueForKey:[self.searchResults objectAtIndex:indexPath.row]];
}
and after searching you are getting title now row because in your code
rows = [self.searchResults count];
return rows;
its always returning zero value. So just do it return 1;
And do other thing as your requirement,
And i will suggest you to not to use different different code for before table search and after searching.. Like if ([tableView isEqual:self.searchDisplayController.searchResultsTableView])
just use same code for both..and make changes only in array and dictionary..
initially
tableAry = globalAry;
And after searching
tableAry = searchedAry;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…