在将带有一些数据的segue带到另一个视图时,我遇到了一些问题。
我有一本联系簿,第一个tableview正确显示联系人,也有图像 当我点击联系人时,它应该执行segue到另一个tableView。但由于某种原因,它只需要第一次接触(似乎它不在循环中)。
我有一个联系人类和第二个ViewController。我无法理解为什么会发生
我创建了“pastie”链接:
答案 0 :(得分: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,而不是在单元和表视图控制器之间。
答案 1 :(得分:1)
问题是第196行:您想拥有所选行的索引路径。但是因为在第215行中,您在选择后立即取消选择单元格,索引路径始终为0。