iPad 搜索显示控制器从第二个单元格开始显示结果

Posted

技术标签:

【中文标题】iPad 搜索显示控制器从第二个单元格开始显示结果【英文标题】:iPad search display controller displaying results starting in second cell 【发布时间】:2014-01-16 21:34:53 【问题描述】:

我在使用 localSearch 的 iPad 应用程序中添加了搜索栏和搜索显示控制器。我相信我正确地实施了代表。搜索工作正常并显示结果,但问题是这些结果从第二个单元格开始。弹出显示中的第一个单元格为空。我仔细检查了地图项目的数量和内容是否正确。

代码:

- (void) searchBarSearchButtonClicked:(UISearchBar *)searchBar

    if (![self connected]) 
        [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Cannot Connect",nil)
                                    message:NSLocalizedString(@"Please make sure you are connected to the internet and try again.",nil)
                                   delegate:nil
                          cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show];
    
    else if ([mainToolbar isHidden])
    
        [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Search Unavailable",nil)
                                    message:NSLocalizedString(@"Please make sure you aren't drawing an AOI or using a tool and then try again.",nil)
                                   delegate:nil
                          cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show];
    
    else 
        // Cancel any previous searches.
        [localSearch cancel];

        // Perform a new search.
        MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
        request.naturalLanguageQuery = self.searchBar.text;
        request.region = self.mapView.region;

        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        localSearch = [[MKLocalSearch alloc] initWithRequest:request];

        [localSearch startWithCompletionHandler: ^(MKLocalSearchResponse *response, NSError *error)
            [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

            if ([response.mapItems count] == 0)
            
                [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"No Results",nil)
                                            message:nil
                                           delegate:nil
                                  cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show];
                return;
            

            if (error != nil)
            
                [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Map Error",nil)
                                            message:NSLocalizedString(@"Sorry.", nil)
                                           delegate:nil
                                  cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show];
                return;
            

            results = response;

            [self.searchDisplayController.searchResultsTableView reloadData];
        


         ];
    



- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    return [results.mapItems count];



- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *IDENTIFIER = @"SearchResultsCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:IDENTIFIER];
    if (cell == nil)
    
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:IDENTIFIER];
    

    MKMapItem *item = results.mapItems[indexPath.row];

    cell.textLabel.text = item.name;
    cell.detailTextLabel.text = item.placemark.addressDictionary[@"Street"];

    return cell;

这是问题的截图。

【问题讨论】:

仔细观察 - 字符串“Found Locations”是searchResultsTitle - developer.apple.com/library/ios/documentation/uikit/reference/… 哦,哇,我的视力不好现在对我没有任何好处。谢谢! 【参考方案1】:

第一行包含表头。

【讨论】:

以上是关于iPad 搜索显示控制器从第二个单元格开始显示结果的主要内容,如果未能解决你的问题,请参考以下文章

使用多个单元格从另一张纸中搜索数据吗?

显示零的自定义表格单元格

UICollectionView 两个具有相同视图的单元格。第二个单元格不显示任何内容

查找第二个vlookup值

如何将第二个(隐藏)值添加到 datatables.net 中的单元格?

在SAP abap中。从第一个ALV显示根据筛选条件搜索出第二个ALV的显示数据(内表不一样)点击返回一直转圈