我将 UISeachDisplayController 与 UITableView 一起使用。它是在 UITableViewController 的 viewDidLoad 方法中以编程方式设置的:
- (void)viewDidLoad
{
[super viewDidLoad];
[self loadProjectsAndTitles];
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 600, 44)];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar
contentsController:self];
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsTableView.allowsSelection = TRUE;
self.tableView.tableHeaderView = searchBar;
}
一切都工作得很好,除了当我在使用 UISearchBar 时单击一行时,- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
虽然没有使用 UISearch 时它被很好地调用,但没有调用该方法。我的问题是这是正常行为还是选择方法应该有效?如果它应该起作用,有什么建议为什么它可能不起作用?