选择UITableView行无关紧要?

时间:2013-09-03 12:28:23

标签: ios uitableview row

我有一个“UITableView”,我正在尝试处理选定的行并相应地使用其数据,

我已经编写了必要的代码来获取所选行,但遗憾的是它似乎不起作用

如果我什么都不做,

NSIndexPath *path = [tableViewDoctorName indexPathForSelectedRow];
int rowSelected = path.row;

rowSelected的值为0;

但是,当我选择行时,它又是0。

我在表格中只有一行,我不确定这有关系吗?

如何准确确定“UITableView”中的选定行?

4 个答案:

答案 0 :(得分:1)

设置UITableView委托并实现此方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
           int rowSelected = indexPath.row;
 }        

答案 1 :(得分:1)

indexPath.row以第一行的 0 开头,而您只有一行,然后返回 0 ;

但是如果您想获取所选行的数据,那么您可以委托UITableView

的方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{  
  // here you can get directly indexPath.row so you can get required data;
}

答案 2 :(得分:1)

当然你在tableView中有多少行很重要:如果你只有1,那么它的indexpath是(0,0),这是唯一可以在这种情况下被选中的行。

所选行通常会突出显示(蓝色),因此如果您不希望此蓝色选项保留在屏幕上,您可能希望将其存储在tableView委托的另一个属性中。

通常,在UITableViewDelegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // deselect the row, to avoid the 'blue' selection to stay on-screen
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // save your own copy of 'last' selected indexPath
    self.mySavedIndexPath = indexPath;    
}

答案 3 :(得分:1)

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    _selectedIndexPath = indexPath;
}

在外面的功能, 用它来获取选定的行,

 NSIndexPath *indexPath = [NSIndexPath indexPathForRow: _selectedIndexPath.row inSection:0];
int rowSelected = indexPath.row;