Ios didSelectRowatIndexPath的等效序列?

Ios didSelectRowatIndexPath的等效序列?,ios,uitableview,storyboard,xcode5,segue,Ios,Uitableview,Storyboard,Xcode5,Segue,在这里搜索了这么多之后,我还没有找到一个解决方案,这似乎不是一个观点的争论。在前面的代码中,我可以用下面的代码实现我想要的结果长路线是的 if(indexPath.section == 0 && indexPath.row == 0) { DetailViewController *dvc = [[[DetailViewController alloc] init] autorelease]; dvc.detail = data.city1; [self.navigationCo

在这里搜索了这么多之后,我还没有找到一个解决方案,这似乎不是一个观点的争论。在前面的代码中,我可以用下面的代码实现我想要的结果长路线是的

if(indexPath.section == 0 && indexPath.row == 0) {
DetailViewController *dvc = [[[DetailViewController alloc] init] autorelease];
dvc.detail = data.city1;
[self.navigationController pushViewController:dvc animated:YES];

}

if(indexPath.section == 0 && indexPath.row == 1) {
DetailViewController *dvc = [[[DetailViewController alloc] init] autorelease];
dvc.detail = data.city2;
[self.navigationController pushViewController:dvc animated:YES];
依此类推,为每个单元格提供一个在选择时执行的特定操作,并将数组传递给下一个视图。我所有的研究看起来都像是风格和观点的差异,夹杂着将segue连接到视图控制器或特定单元格以及在didSelectRow或prepareForSegue之间使用哪种方法之间的不一致。下面的代码连接到故事板中的一个单元格,因此该部分中的每个单元格现在都将相同的数据传递给下一个tableview

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"shows"])
{
    ShowsList *viewController = segue.destinationViewController;
    viewController.detail = data.city1;
}

}

我的问题是如何在prepareForSegue中处理indexPath.row,以实现我以前在代码中可以做的事情,并根据选择的行传递特定数组?我尝试恢复到故事板和代码的混合模式,这是一个失败,创建了多个自定义单元,这似乎违背了无混乱方法的全部目的,以及不同答案的多种变体。再说一次,我怎么说,嘿,当选择这个时传递这个信息,当选择这个时传递这个信息。。。?使用prepareforsgue方法

prepareforsgue:sender:中的sender参数将是您选择的单元格,因此您可以像这样获得indexPath

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UITableViewCell *)sender {
       NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
       // use the indexPath to query your array
}

可能是@bjomer的副本我不确定它是否是副本,我之前检查过,似乎不是我要找的。也许我没有正确地澄清自己,或者我误解了。使用这种方法,我看不到在选择特定单元格时在何处声明要发送的数据,而是在我即插即用时抛出错误,这也不是我所要求的。使用didSelectRow会抛出错误,而使用PrepareForsgue则无法根据选择的单元格声明要发送的数据。选择城市1,加载此plist,选择城市2,加载此其他plist。答案不在你的建议中。据我所知,你的问题基本上是我如何确定在prepareForSegue中选择了哪一行,就像我在didSelectRowForIndexPath中一样。链接的问题回答了这个问题。你还有什么我不明白的地方吗?@bjomer我想更多的是我没有用恰当的语言表达我想要的东西。我相信我已经说明了我的目标和问题与链接的问题,以及在原来的问题/漫游。如果我的术语让你不喜欢,我会再试试简单的术语。城市1居住在index0,城市2居住在index1。在prepareForSegue中,我如何说当选择city1时将plistA传递到下一个视图,当选择city2时将plistB传递到下一个视图,与您在-DidSelectRowatinexPath中所做的完全相同;唯一的区别是segue为您分配目标控制器。您将此问题表述为将-prepareforsgue与-didSelectRowAtIndexPath进行比较。当您开始使用segues时,基于行号选择plist的逻辑不会改变。谢谢,这正是我需要朝着正确的方向前进的原因,而不是对现有代码进行插入、祈祷、猜测和挑选,以找出其不起作用的原因。