无法通过点击searchResultTable的单元格导航到新的视图控制器

时间:2013-04-16 12:52:53

标签: ios objective-c cocoa

我是Objective c的新手。我有一个带搜索栏的桌子。 我的问题是,当我第一次点击searchResultTable中的一个单元格时,它导航到另一个视图控制器,但当我取消搜索并再次执行并点击搜索结果单元格时,没有任何反应。任何人都可以帮我解决这个问题吗?以下是我的一些代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    UIViewController *newView = [[UIViewController alloc] init];
    if(tableView == self.tableView) {
        [self.navigationController pushViewController:newView animated:YES];
        newView.title = [[listOfGroups objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    }
    if(tableView == self.searchDisplayController.searchResultsTableView) {
        [self.navigationController pushViewController:newView animated:YES];
        newView.title = [[searchData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    }

    [newView release];
}

这是Viewdidload方法中的一些代码

searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
self.searchDisplayController.searchResultsTableView.delegate = self;

你能否告诉我上面的3行代码是如何工作的,这是什么意思? 谢谢。

1 个答案:

答案 0 :(得分:0)

应用程序中的每个表视图都需要有一个委托和一个 dataSource

dataSource 实现 UITableViewDataSource 协议,该协议基本上由许多方法组成,这些方法定义标题信息,要显示多少行数据,数据如何分为不同的部分,最重要的是,为表格视图提供要显示的单元格对象。

委托实现 UITableViewDelegate 协议,并提供对表视图外观和功能的额外控制,包括检测用户何时触摸特定行,定义自定义行高和缩进以及行删除和编辑功能的实现。

来源:http://www.techotopia.com/index.php/Creating_a_Simple_iPhone_Table_View_Application#The_Table_View_Delegate_and_dataSource