UISearchBarDelegateを組み込んだTableViewベースのアプリケーションがあります。アプリケーションは意図したとおりに機能します。テーブルビューは、UISearchBarとともにすべてのデータとともに表示されます。検索フィールドにテキストを入力すると、入力したテキストと一致するようにリストが絞り込まれます。
私が経験している問題は、キャンセルボタンをクリックすると、キーボードが正常に消えても元の配列が返されないことです。検索されたアイテムが表示されたまま表示されます。
searchBarCancelButtonClickedセクションに、次のコードがあります。
- (void)searchBarCancelButtonClicked:(UISearchBar *)SearchBar
{
SearchBar.text = nil;
[SearchBar resignFirstResponder];
[tableView reloadData];
}
キャンセルボタンがクリックされたときにセクションが元の配列からデータをリロードする必要があると思い[tableView reloadData]
ますが、それは行われません。私がここで間違っているかもしれないことについて何か考えはありますか?
また、これが私のcellForRowAtIndexPathです。他の例と比較すると、私は物事を正しく行っているように見えます。
-(UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyIndentifier"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
StateDetail *cd;
if(isFiltered)
cd = [self.searchStates objectAtIndex:indexPath.row];
else
cd = [self.listOfStates objectAtIndex:indexPath.row];
cell.textLabel.text = cd.stateName;
return cell;
}
前もって感謝します!