4

即使 shouldReloadTableForSearchString 方法返回 NO,为什么我的 UISearchDisplayController 仍显示“无结果”?它不应该什么都不做并保持黑色吗?我怎样才能防止它这样做?

#import "RootViewController.h"

@implementation RootViewController

#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (tableView == self.searchDisplayController.searchResultsTableView) {
        return 0;
    }
    return 10;
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell.
    cell.textLabel.text = [NSString stringWithFormat:@"row %d", indexPath.row];

    return cell;
}

#pragma mark SearchController stuff

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
    return NO;
}


- (void)dealloc {
    [super dealloc];
}


@end
4

1 回答 1

0

不,tableViews(包括searchTableView由 a 创建的UISearchDisplayController)在显示时会自动加载数据。该shouldReloadTableForSearchString:方法将防止仅在在搜索框中键入字符时重新加载表。

请参阅我对 UISearchDisplayContoller 的回答——在搜索栏中输入时无法阻止表格重新加载,以获取有关如何处理此问题的建议。

于 2011-04-06T21:19:49.360 回答