UISearch酒吧在ios 8

时间:2015-08-13 14:42:36

标签: uitableview uisearchbar uisearchdisplaycontroller uisearchresultscontroller

我正在获取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];

}

1 个答案:

答案 0 :(得分:0)

当你将isSearching设置为yes时。现在表的datasoucre已经改变了。并且您已重新加载数据。

你也应该更新你的数据源方法

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

HTH