objective-c - 搜索后,搜索栏和搜索显示控制器没有显示结果

  显示原文与译文双语对照的内容
0 0

我目前正在尝试找出为什么搜索栏和搜索显示控制器在用户提供输入后不显示结果。

1.) 我非常相信代理和所有内容都配置正确

2.) 我已经设置了一切,所以我可以看到控制台 NSLog的数据为 reutrned

3 。) 这似乎不产生任何结果:


-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
 [self.searchDisplayController.searchResultsTableView reloadData];
}

4.) 将数据添加到 NSMutableArray,但只显示空白空间

它的他相关问题,在这些细胞底部似乎有空白,为什么? 此外,除了 searchBarCancelButtonClicked 之外,还有一种方法可以检测搜索视图/模式什么时候被关闭? 我必须更改状态栏颜色。

任何帮助都会花费 appreciated 。

更多代码:


-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
 NSString *authorizedSearch = [searchBar.text stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];

 NSString *post = [NSString stringWithFormat:@"search=%@",authorizedSearch];
 NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
 NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
 [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"blahblahblah/search.php"]]];
 [request setHTTPMethod:@"POST"];
 [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
 [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
 [request setHTTPBody:postData];
 NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
 if(conn) {
 NSLog(@"Connection Successful");
 }else{

 }


 return YES;
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data{
 NSString *ret = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
 NSLog(@"DATA: %@", ret);
 NSArray *objectArray=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
 [resultsJson addObject:objectArray];
 [resultsJson addObject:@"1"];
 NSLog(@"results: %@",resultsJson);
 NSLog(@"count: %i",[resultsJson count]);

}

时间: 原作者:

0 0

你的cellForRowAtIndexPath: 看起来像什么?

你正在使用:

[tableview dequeueReusableCellWithIdentifier:CellIdentifier];

或者:

[tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

看起来不应该有什么区别但我认为。

是否为每个后备存储正确设置数据?


结果到达时是否存在竞争条件并试图呈现它们?


如果确定数据是正确的,那么它是否可以是一个自动版本( 或者类似的) 问题组合框架? 我经常发生这种情况,并通过调整以下各项来修复: -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath


在下面的空白空间中,在下面的空白空间中,可以看到一个 原因: 停止UISearchDisplayController显示空单元格

原作者:
...