我有一个包含名字数组的tableview。搜索栏可以完美地过滤表格视图中的名称。
问题是单击搜索tableview单元格时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];
}
}
答案 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];
此外,我想知道为什么在表格单元格中有一个搜索栏。你介意在你的应用程序中发布它的屏幕截图吗?我担心你可能做的工作超出了必要的范围。