1

我有一个包含名称数组的表格视图。搜索栏完美地过滤了表格视图中的名称。

问题是didSelectRowAtIndexpath单击搜索表格视图单元格时没有被触发。你能帮帮我吗?

我错过了什么?我是否应该包括任何特殊代表以涉及搜索 tableview 单元格单击。

下面是图片和代码。

在此处输入图像描述

  -(void)search
 {
nameArray = [[NSMutableArray alloc] init];
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 160, 44)];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];

searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
self.tableViewFriendsList.tableHeaderView = searchBar;
 }
 - (void)searchDisplayController:(UISearchDisplayController *)controller
 willShowSearchResultsTableView:(UITableView *)tableView
 {
 [tableView setRowHeight:70];
 [tableView reloadData];
 }
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {       

   if (tableView == self.tableViewFriendsList) {
    NSString *friendsID =[[[self.friendsDictionary objectForKey:@"data"] objectAtIndex:indexPath.row] objectForKey:@"id"];
    [[FacebookHelper sharedFacebookHelper] postOnWallWithDelegate:self andID:friendsID];
}

if (tableView == self.searchDisplayController.searchResultsTableView) {
    NSLog(@"I ve come here");
    NSString *friendsID =[friendsListIdArray objectAtIndex:indexPath.row];
    [[FacebookHelper sharedFacebookHelper] postOnWallWithDelegate:self andID:friendsID];
}
}
4

2 回答 2

2

你忘了设置

searchController.searchResultsDelegate = self;
于 2012-07-28T08:57:24.053 回答
-1

我在我的一个项目中做了一些可能有帮助的事情:

// add gesture to detect when table view is being tapped so that keyboard may be dismissed
    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                                        action:@selector(dismissKeyboard)];
    gestureRecognizer.cancelsTouchesInView = NO;
    [self.tableView addGestureRecognizer:gestureRecognizer];

此外,我想知道为什么您表格单元格中有一个搜索栏。您介意在您的应用程序中发布它的屏幕截图吗?恐怕你做的工作可能比必要的多。

于 2012-07-28T06:34:20.630 回答