无法触发UITableView委托方法“DidSelectRowAtIndexPath”

问题描述:

嗨我正在使用searchDisplayController筛选我的搜索结果。我的代码片段如下:无法触发UITableView委托方法“DidSelectRowAtIndexPath”

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    //Set up search bar 
    UISearchBar *tempBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,0,320,40)]; 
    self.sBar = tempBar; 
    [tempBar release]; 
    self.sBar.delegate = self; 
    self.sBar.tintColor = [UIColor colorWithHexString:@"#b6c0c7"]; 
    self.sBar.placeholder = @"Search Questions and Topics"; 

    [self.view addSubview:sBar]; 

    self.filteredListContent = [NSMutableArray arrayWithCapacity:[self.listContent count]]; 

    self.searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:sBar contentsController:self]; 
    [self setSearchDisplayController:searchDisplayController]; 
    [searchDisplayController setDelegate:self]; 
    [searchDisplayController setSearchResultsDataSource:self]; 

// restore search settings if they were saved in didReceiveMemoryWarning. 
    if (self.savedSearchTerm) 
    { 
     [self.searchDisplayController setActive:self.searchWasActive]; 
     [self.searchDisplayController.searchBar setText:savedSearchTerm]; 

     self.savedSearchTerm = nil; 
    } 

    [self.resultTableView reloadData]; 
    self.resultTableView.scrollEnabled = YES; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"zzz"); 
} 

我是否需要在我的视图中设置任何操作来触发可用的委托方法?

请注意,我已经在我的.h文件中声明了UISearchDisplayDelegate,UISearchBarDelegate,UITableViewDataSource,UITableViewDelegate。我的tableView cellForRowAtIndexPath方法也在工作。

你有没有实际设置

self.tableView.delegate = self 

或在Interface Builder连接起来

+0

这是正确的,并且确保你把''在.h文件中 – iNoob 2012-01-02 10:16:57

+1

谢谢!但是,在哪里设置代表的最佳位置?在视图中加载?在我的情况下,它会是self.resultTableView.delegate = self – Zhen 2012-01-03 03:12:54