在将一些数据转移到另一个视图时,我遇到了一些问题。
我有一个通讯录,第一个 tableview 正确显示联系人,还有图像当我点击联系人时,它应该执行 segue 到另一个 tableView。但由于某种原因,它只需要第一次接触(似乎它不在循环中)。
我有一个联系人类和第二个 ViewController。我不明白为什么会这样
我创建了“pastie”链接:
在将一些数据转移到另一个视图时,我遇到了一些问题。
我有一个通讯录,第一个 tableview 正确显示联系人,还有图像当我点击联系人时,它应该执行 segue 到另一个 tableView。但由于某种原因,它只需要第一次接触(似乎它不在循环中)。
我有一个联系人类和第二个 ViewController。我不明白为什么会这样
我创建了“pastie”链接:
我检查了您的代码,我认为问题在于当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。
问题是第 196 行:您想拥有所选行的索引路径。但是因为在第 215 行中,您在选择单元格后立即取消选择单元格,因此索引路径始终为 0。