0

在将一些数据转移到另一个视图时,我遇到了一些问题。

我有一个通讯录,第一个 tableview 正确显示联系人,还有图像当我点击联系人时,它应该执行 segue 到另一个 tableView。但由于某种原因,它只需要第一次接触(似乎它不在循环中)。

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

我创建了“pastie”链接:

这是我的代码的链接,以保存位置

4

2 回答 2

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。

于 2013-06-02T21:42:29.733 回答
1

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

于 2013-06-02T21:37:59.170 回答