如果我的问题不清楚,因为我不熟悉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可能更容易,而不是尝试将过滤后的搜索视图的索引与主数组匹配,但我不确定如何做到最好。
任何帮助将不胜感激!
答案 0 :(得分:0)
你是对的,使用NSDictionary更容易。每个人都可以用NSDictionary代表,如@ {@“name”:@“Stephen Hawking”,@“age”:70}。使用[personDict objectForKey:@“name”]填充您的朋友表视图,并在选择时获取[person objectForKey:@“age”]的值,并将其传递回上一个视图控制器。