我正在使用带有UITableView的UISeachDisplayController。它以编程方式在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时点击一行时,一切都工作得非常好,但是当没有使用UISearch时,- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
方法被调用得很好。我的问题是这种正常行为还是选择方法有效?如果它应该工作有任何建议,为什么它可能无法正常工作?
答案 0 :(得分:1)
我想你忘了设置
searchDisplayController.searchResultsDelegate = self;
searchResultsDelegate
是表视图的委托,其中显示了搜索结果,didSelectRowAtIndexPath
是表视图委托方法之一。