为了更好地理解表以供将来使用,我希望有人可以给我一些关于使用这种方法的简单语法。我希望能够获得一些理解并在将来建立它。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
所以,我有这个设置。假设我想要NSLog
所选行的内容。我该怎么做呢?
到目前为止,我已经多次尝试过这种方法,但要么返回nil
,要么我收到错误。
编辑:我自己找到了。溶液
NSLog(@"Row: %@", [dataArray objectAtIndex:indexPath.row]);
答案 0 :(得分:4)
indexPath上有一个用于处理表的类别。它响应-row和-section。
NSLog(@"Row: %d , Section %d",[indexPath row], [indexPath section]);
答案 1 :(得分:0)
如果没有您的实际代码,我们无法正确回答这个问题,但广泛地说:
这是UITableViewDelegate
protocol中的方法。表视图的委托是一个对象,表视图基本上要求它“关于在某些事件发生时该怎么做的”意见,例如在这里,当用户点击一行来选择它时。
通常,委托和表视图的data source是同一个对象。顾名思义,数据源提供表视图显示的数据。它通过看起来很像表视图委托方法的方法来做到这一点;表视图根据需要询问信息的数据源,而不是启动交换的数据源。
所以,在这个委托/数据源对象的某个地方(现在我们来到了让你自己的代码谈论真正有用的部分)有一个模型的引用表示将在表格中显示的所有信息。这可以像数组一样简单,也可以是某种类型的完整数据库的连接。在任何情况下,表视图都要求数据源为该模型中的每一行提供信息 - 这发生在tableView:cellForRowAtIndexPath:
。
这里的方法tableView:didSelectRowAtIndexPath:
也可以访问模型,因此要检查行内容所需要做的就是执行与tableView:cellForRowAtIndexPath:
中相同的查找。
作为一个具体的例子:
NSLog(@"%@", [modelArray objectAtIndex:[indexPath row]]);