我是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行代码是如何工作的,这是什么意思? 谢谢。
答案 0 :(得分:0)
应用程序中的每个表视图都需要有一个委托和一个 dataSource 。
dataSource 实现 UITableViewDataSource 协议,该协议基本上由许多方法组成,这些方法定义标题信息,要显示多少行数据,数据如何分为不同的部分,最重要的是,为表格视图提供要显示的单元格对象。
委托实现 UITableViewDelegate 协议,并提供对表视图外观和功能的额外控制,包括检测用户何时触摸特定行,定义自定义行高和缩进以及行删除和编辑功能的实现。