无法单击搜索栏tableview单元格

时间:2012-07-28 06:20:53

标签: objective-c xcode

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

问题是单击搜索tableview单元格时didSelectRowAtIndexpath没有被触发。你能救我一下吗?

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

以下是图片和代码。

enter image description here

  -(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];
}
}

2 个答案:

答案 0 :(得分:2)

你忘了设置

searchController.searchResultsDelegate = self;

答案 1 :(得分:-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];

此外,我想知道为什么在表格单元格中有一个搜索栏。你介意在你的应用程序中发布它的屏幕截图吗?我担心你可能做的工作超出了必要的范围。