我正在尝试搜索一系列字典。每个字典都有不同的键和值,如Name,Age和Joindate。
我根据以下代码的教程进行搜索:
- (void) searchTableView {
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in listOfItems)
{
NSArray *array = [dictionary valueForKey:@"Name"];
[searchArray addObjectsFromArray:array];
}
for (NSString *sTemp in searchArray)
{
NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length != 0)
[copyListOfItems addObject:sTemp];
}
[searchArray release];
searchArray = nil; }
搜索顺利,数据显示正确。
问题是,当我选择其中一个结果时,它会指向错误的位置。
以下是选定行如何定向到详细视图:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *selectedName = nil;
if(searching)
selectedName = [copyListOfItems objectAtIndex:indexPath.row];
else {
selectedApp = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"Name"];
}
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
DetailViewController *controller = [[DetailViewController alloc] initWithAppData:[dao libraryItemAtIndex:indexPath.row] nibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
controller.selectedName = selectedName;
[self.navigationController pushViewController:controller animated:YES];
[controller release];
[DetailViewController release];
}
我需要一种指向正确位置的方法。
如果我能在主阵列中找到我正在寻找的名称的索引,那就太棒了。
如果你能帮助我,我将不胜感激。
答案 0 :(得分:-1)
你可以继承UITableViewCell并添加一些字段来存储你在哪里找到单元格中显示的内容(比如在哪个字典和数组中的什么位置)。然后,当单击单元格时,您将能够轻松获得该功能。