2013-06-02 26 views
0

当某些数据到另一个视图时,我有一些问题。通过prepareForSegue问题发送一些数据

我有一个联系簿,第一个tableview正确显示联系人,也与图像 虽然我点击联系人应该执行segue到另一个tableView。但由于某种原因,它只需要第一次联系(看起来不像是一个循环)。

我有一个类的联系人和第二个ViewController。我不明白为什么会发生

我创建“pastie”链接:

Here is the link to My code, to save place

+0

你能更具体吗,这里没有问题,你依靠什么来实现? – danypata

+0

@danypata我想在每个联系人的另一个tableview上发送电话号码,但它总是从列表中的第一个联系人发送号码。当我点击列表中的第二个联系人(我的意思是自上而下)时,它仍然向第一个联系人发送相同号码 – Anton

回答

2

我检查了您的代码,我认为问题在于当调用prepareForSegue时,所选行已从didSelectRowAtIndexPath中取消选择。我认为,在这里,最好的办法是从didSelectRowAtIndexPath方法发送选定的指数路径进入performSegue方法是这样的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
     [self.contTableView deselectRowAtIndexPath:indexPath animated:YES]; 
     [self performSegueWithIdentifier:@"NextTable" sender:indexPath]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
     if ([[segue identifier] isEqualToString:@"NextTable"]) { 
     NSIndexPath *indexPath = (NSIndexPath*)sender 
     contact = self.contactsToShow[indexPath.row]; 
     [segue.destinationViewController setPhoneNumbers:contact.numbers]; 
    } 
} 

为了让这种方法工作,你必须视图控制器之间的连接不是细胞和表格视图之间的SEGUE控制器。

+0

谢谢你这对我来说非常完美。但是,它与细胞和控制器之间有什么不同呢?你能给一个小解释吗? – Anton

+0

@Anton你可以链接单元格和目标视图控制器之间的单元格,在这种情况下,当单元格被轻敲时,push/modal会自动完成,而且'didSelectRowAtIndexPath'方法被调用,并且由于你在''performSegue'' didSelectRowAtIndexPath'你最终推动两个视图控制器,这是不行的。 (我不知道,但我认为你必须有静态单元格,以便将segue链接到目标vc) – danypata

+0

和user2445981谢谢帕尔斯:) – Anton

1

问题是行196:你想对选定行的索引路径。但是因为在第215行中,您在选择后立即取消选择单元格,索引路径始终为0.

+0

感谢您提供最快捷的答案,我刚刚评论过所有方法didSelectRowAtIndexPath。但它仍然是一样的。我知道问题在于segue方法,但我应该添加到此IndexPath字符串中? – Anton