当我单击我的UITableView中的某个列表项时,我想将我单击的项目的索引传递给下一个详细视图。通过UITableView列表之间的索引号segue
这是迄今为止我的相关代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
HomeworkDetails *view = [[HomeworkDetails alloc] init];
int lastIndex = [indexPath indexAtPosition:[indexPath length] - 1];
NSLog(@"%u", lastIndex);
[self performSegueWithIdentifier: @"HomeworkDetailsSegue" sender:self];
view.currentIndex = lastIndex;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
在这一点上,我可以成功移动到下一个视图控制器(HomeworkDetails),但信息没有通过。我试图通过做view.currentIndex = lastIndex;
来完成这个,但是这不起作用。我还能如何做到这一点?对不起,我错过了什么;我是iOS开发的初学者。
搭配建议:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
HomeworkDetails *view = [[HomeworkDetails alloc] init];
int lastIndex = [indexPath indexAtPosition:[indexPath length] - 1];
NSLog(@"%u", lastIndex);
[self performSegueWithIdentifier: @"HomeworkDetailsSegue" sender:self];
view.currentIndex = lastIndex;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"HomeworkDetailsSegue"]) {
// note that "sender" will be the tableView cell that was selected
UITableViewCell *cell = (UITableViewCell*)sender;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; //**error**
HomeworkDetails *vc = (HomeworkDetails*)[segue destinationViewController];
vc.currentIndex = indexPath.row;
}
}
“currentIndex”是否意味着您的tableView控制器或segue的目标viewController上的属性? – jonkroll 2012-04-15 22:02:36
它是目标ViewController上的一个属性。对困惑感到抱歉。另外,为了测试,我基本上将目标控制器上的TextView设置为此属性,但始终为0. – Kgrover 2012-04-15 22:04:46