使用UISearchDisplayController时未发生的选择

时间:2013-05-04 21:30:43

标签: ios uitableview uisearchdisplaycontroller

我正在使用带有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方法被调用得很好。我的问题是这种正常行为还是选择方法有效?如果它应该工作有任何建议,为什么它可能无法正常工作?

1 个答案:

答案 0 :(得分:1)

我想你忘了设置

searchDisplayController.searchResultsDelegate = self;

searchResultsDelegate是表视图的委托,其中显示了搜索结果,didSelectRowAtIndexPath是表视图委托方法之一。