UISearchController上的Cell SearchTableView没有响应didSelectRowAtIndexPath

时间:2013-04-11 15:36:41

标签: objective-c uitableview uisearchbar uisearchdisplaycontroller

我有一个带有搜索显示控制器的主表视图。我正在使用自定义cell.h实现

  
      
  • (void)setSelected:(BOOL)选中动画:(BOOL)动画
  •   

当我从主表中选择单元格时,上面的代码会更改此选定单元格的背景颜色。当我选择从搜索栏搜索时,搜索显示控制器使用

以正确的背景颜色显示所选单元格
  
      
  • (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
  •   

但是,在搜索显示控制器上显示的此单元格不会响应didSelectRowAtIndexPathdidDeselectRowAtIndexPath。另一方面,其他细胞对这两种方法都有反应。

我想要实现的是主表和搜索显示控制器上的搜索表视图之间的同步,其中所选单元格应在主表和搜索表视图中显示,但允许选择和取消选择。

请指教。非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案:

使用

  
      
  • (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView
  •   

  

[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:[searchResult indexOfObject:currentFriend] inSection:0] animated:NO scrollPosition:0];

而不是

  

(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

希望它有所帮助!