我的目的是当用户点击view1
中的按钮(转到view2
)时,我将发送UITableView
刚刚检查过view1
的所有选定单元格到view2
。
所以在将表格传递到下一个视图之前,我想测试一下我是否在正确的轨道上,但似乎没有。这是我的代码:
-(IBAction)goToView2{
//get all section selectioned items into an array
themesChosed=[tView indexPathsForSelectedRows];//tView is the outlet of my UITableView and themesChosed is an NSArray declared in the .h file
for (int i=0; i<=[themesChosed count]; i++) {
NSLog(@"%i",[[themesChosed objectAtIndex:i]integerValue]);
}
}
这总是给我一个0。
2012-01-13 15:52:06.472 MyApp[876:11603] 0
虽然我在桌子上选了几个项目。
答案 0 :(得分:5)
themesChosed
中的对象是NSIndexPath
个对象。您需要访问row
和section
属性,如下所示:
-(IBAction)goToView2{
//get all section selectioned items into an array
themesChosed=[tView indexPathsForSelectedRows];//tView is the outlet of my UITableView and themesChosed is an NSArray declared in the .h file
for (int i=0; i<=[themesChosed count]; i++) {
NSIndexPath *thisPath = [themesChosed objectAtIndex:i];
NSLog(@"row = %i, section = %i", thisPath.row, thisPath.section);
}
}
答案 1 :(得分:2)
第一个NSIndexPath
不是整数,它是一个带有行和节方法的对象,所以这可能就是为什么你得零。您确定allowsMultipleSelection
设置为YES吗?
答案 2 :(得分:0)
如果您没有获得索引值,那么最好接近伤口如下,以获取索引号:
NSArray *indexes = [self.tableView indexPathsForSelectedRows];
for (NSIndexPath *path in indexes) {
NSUInteger index = [path indexAtPosition:[path length] - 1];
[selectedOptionsArray addObject:[optionHolderArray objectAtIndex:index]];
}