如果我的问题不清楚,因为我是 iOS 编程(以及一般编程)的新手,请提前道歉。
现在,我有一个UITableView
按字母顺序显示NSMutableArray
用户朋友姓名的方法,例如:
friends: { @"Andy",@"Anand",@"Bob",@"Cat" };
我有另一个NSMutableArray
保存用户朋友的匹配年龄,用户从未见过但在用户选择朋友的名字后传递给前一个视图控制器的东西。这个年龄数组类似于:
friendsAges: {@"25",@"23",@"30",@"22"};
我的问题是,如果我在朋友的名字中添加了一个searchBar
,UITableview
如果用户从过滤后的数组中选择一个名字,我如何确保将相应的年龄对象发送回前一个视图控制器searchResultsTableView
?
例如,如果没有 searchBar,选择“Bob”也会将“30”发送到前一个控制器。但是,如果用户输入“bo”并且过滤后只显示 Bob searchResultsTableView
,那么年龄“25”将被发送到前一个控制器 b/c,它是第一个索引。
这是我的错误代码:
if (tableView == self.searchDisplayController.searchResultsTableView) {
NSString *theFriend = [_filteredFriendArray objectAtIndex:indexPath.row];
// not sure what I should use instead for the _filteredFriendArray below
NSString *theFriendAge = [_filteredFriendArray objectAtIndex:indexPath.row];
[self.delegate friendPickerViewController:self
didSelectFriend:theFriend
didSelectFriendAge:theFriendAge];
} else { //if not using search bar and seeing filtered search results
NSString *theFriend = [friends objectAtIndex:indexPath.row];
NSString *theFriendAge = [friendsAge objectAtIndex:indexPath.row];
[self.delegate friendPickerViewController:self
didSelectFriend:theFriend
didSelectFriendAge:theFriendAge];
}
我觉得使用 NSDictionary 可能更容易,而不是尝试将过滤后的搜索视图的索引匹配回主数组,但我不确定如何最好地做到这一点。
任何帮助,将不胜感激!