在iphone应用程序中。
我正在尝试获取indexPath.row值(在didselectedrowatindexpath方法中),以在以编程方式创建的tableview中选择的行为基础执行某些操作。
我需要从didselectedrowatindexpath方法中访问indexpath.row,其中if / else将根据indexpath.row定义操作。
应用程序中有7张卡片图像和一个[菜单列表]表格视图。每当用户点击表格视图行时,则需要触摸图像
我正在尝试使用此代码来获取IndexPath.row值。问题是indexPath.row值不是每次都更新。这只是旧的价值。请提出如何解决这个问题。
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
{
NSUInteger nSection =[myTableView numberOfSections]-1 ;
NSUInteger nRow = [myTableView numberOfRowsInSection:nSection];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:nRow inSection:nSection];
NSLog(@"No of sections in my table view %d",nSection);
NSLog(@"No of rows in my table view %d",nRow);
NSLog(@"Value of selected indexPath Row %d", [indexPath.row]);
NSLog(@"VAlue of Array arrOperationChk %d",[arrOperationChk count]);
}
答案 0 :(得分:1)
此代码似乎会响应某些内容(表格?)被触摸。然后,您可以询问该表在其最后一节中有多少行,并为其创建索引路径。
该表缓存每个部分中的行数。如果您更改了行数,则需要通过调用-insert/deleteRowsAtIndexPaths:withRowAnimation:
或致电-reloadData
来告知该表。否则,表无法知道它需要重新查询其数据源(您提供的数据源)。
答案 1 :(得分:1)
除非我错误地读取此代码,否则您只是获取最后一个单元格的最后一个单元格的索引路径?我不希望改变。
如果要获取所选单元格,请使用
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
您的UITableViewController
对象中的方法。
答案 2 :(得分:1)
正如其他人所说,代码中没有任何东西会改变你刚刚创建的indexPath变量。
此外,语法[indexPath.row]
看起来不对 - 除非您正在调用方法,否则不需要方括号。当你在Objective-C中的指针上使用这样的点语法时,你不会将它视为方法调用(即使有一个隐式),而是作为结构的伪实例变量。
你的目标是什么?如果我们理解你想要实现的目标/期望的行为,那么可能会出现更有用的答案。