iOSプログラミング(およびプログラミング全般)に慣れていないため、質問が不明な場合は事前にお詫び申し上げます。
現在、次のようなユーザーの友達の名前のUITableView
アルファベット順を表示するがあります。NSMutableArray
friends: { @"Andy",@"Anand",@"Bob",@"Cat" };
別NSMutableArray
のユーザーの友達の年齢を保持するものがあります。これは、ユーザーには表示されませんが、ユーザーが友達の名前を選択した後、前のViewControllerに渡されます。この年齢配列は次のようなものです。
friendsAges: {@"25",@"23",@"30",@"22"};
私の質問は、友達の名前にを追加したsearchBar
場合UITableview
、ユーザーがフィルター処理された配列から名前を選択した場合に、対応する年齢オブジェクトが前のViewControllerに返送されるようにするにはどうすればよいsearchResultsTableView
ですか。
たとえば、searchBarがなかった場合、「Bob」を選択すると、前のコントローラーにも「30」が送信されます。ただし、ユーザーが「bo」と入力し、フィルターsearchResultsTableView
にボブのみが表示されている場合は、代わりに年齢「25」が前のコントローラーに送信されます。これが最初のインデックスです。
これが私の間違ったコードです:
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を使用する方が簡単かもしれないと思いますが、それを行う最善の方法がわかりません。
どんな助けでもいただければ幸いです!