我有一个“UITableView”,我正在尝试处理选定的行并相应地使用其数据,
我已经编写了必要的代码来获取所选行,但遗憾的是它似乎不起作用
如果我什么都不做,
NSIndexPath *path = [tableViewDoctorName indexPathForSelectedRow];
int rowSelected = path.row;
rowSelected的值为0;
但是,当我选择行时,它又是0。
我在表格中只有一行,我不确定这有关系吗?
如何准确确定“UITableView”中的选定行?
答案 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;