UISearchDisplayController与searchResultsTableView和self.tableView的奇怪行为

时间:2014-01-26 12:38:08

标签: ios iphone objective-c uisearchbar uisearchdisplaycontroller

这是我的故事板视图及其连接:

http://i.stack.imgur.com/uD0pT.png http://i.stack.imgur.com/FNnVa.png

在我的特定情况下,我有searchResultsTableView从第一个外部Web服务获取数据,self.tableview从另一个Web服务获取数据。

我添加了一些明确的代码:

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { ... }

这特别是获得了第一个Web服务     返回NO

并且有一个:

[self.searchDisplayController.searchResultsTableView reloadData];

在提取完成时重新加载数据。

然后我们有:

-(void) doSearch:(NSString*) keyword inStore:(NSInteger) store getPage: (int) pagenum {..}

获取第二个Web服务并将结果设置为名为'fetchedItems'的数组

现在,要管理这两个表,我必须编写这个方法:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
  NSLog(@"Avvio ricerca..");
  // Do the search...
  NSInteger store = [self buttonSelected];
  [self doSearch:searchBar.text inStore:store getPage:1];
  [self.searchDisplayController setActive:NO];
}

我试过没有'setActive:NO'但是self.searchDisplayController.searchTableView仍然显示,我不能用“doSearch”结果看到“underneath”self.tableView

确定。现在我有这个方法:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
static NSString *CellIdentifier = @"foundCell";
      static NSString *suggestionCellIdentifier = @"suggestionCell";
      UITableViewCell *cell;


       if (tableView == self.searchDisplayController.searchResultsTableView) {
         // HERE I AM WITH SEARCHDISPLAYCONTROLLER    

         cell = [self.tableView dequeueReusableCellWithIdentifier:suggestionCellIdentifier];
         cell.textLabel.text = [self.suggestions objectAtIndex:indexPath.row];
      } else {
        // HERE I AM WITH SELF.TABLEVIEW

    }

    return cell;
}

现在可行,但有问题! 当我点击带有结果的tableview(用self.tableview表示)时,我无法用方法来点击      - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {...}

但我在编辑模式下重新打开了uisearchdisplaycontroller(因此用户可以在搜索栏内点击)

我哪里错了?

1 个答案:

答案 0 :(得分:0)

固定!使用显示时SearchBarI NavigationBar = YES 我们需要在故事板中搜索栏为OUTview!