0

JSONArray データを取得
しており、UITableView で UISearchBar を使用しているテーブルに電話番号を表示しています。

検索バーに入力すると、データがリロードされ、最初のセルにタイプ値が表示されます。

しかし、最初のセルをクリックすると、古い配列値が表示されます。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
   if (isSearching) 
   {
        cell.textLabel.text = [searchResultArray objectAtIndex:indexPath.row];  
   }
   else 
   {
        cell.textLabel.text = [phoneNoArray objectAtIndex:indexPath.row];
   }
}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{
   [searchResultArray removeAllObjects];
   if([searchText length] != 0)
   {
        isSearching = YES;
        [self searchTableList];
   }
   else 
   {
        isSearching = NO;
   }
   [self.tableView reloadData];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    tempString = [jsonArray objectAtIndex:indexPath.row];

}
4

1 に答える 1

0

isSearching を yes に設定した場合。テーブルのデータソースが変更されました。データをリロードしました。

また、データソースのメソッドも更新することになっています

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (isSearching) {
    return [searchResultArray count];
}
else
{
  return [phoneNoArray count];
 }
}

HTH

于 2015-08-17T11:30:10.453 に答える