0

我是目标 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 行代码是如何工作的,这是什么意思?谢谢你。

4

1 回答 1

0

应用程序中的每个表视图都需要有一个委托与之关联的数据源。

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

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

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

于 2013-04-16T13:15:19.433 回答