在segue期间无法传递唯一数据

时间:2014-01-14 11:39:07

标签: ios objective-c segue

我无法从选定的表格单元格中获取唯一数据。我点击的每个单元格似乎都传递了相同的数据。我在这里做错了什么建议?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([segue.identifier isEqualToString:@"MallToVendor"]) {
        MingieAdvertisementIndividualViewController *destViewController = segue.destinationViewController;
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        destViewController.mallName = [[advertisements objectAtIndex:indexPath.row] name];
    }
}

2 个答案:

答案 0 :(得分:1)

不使用indexPathForSelectedRow,而是将indexpath.row方法中的选定didSelectRowAtIndexPath保存在整数变量中,并在prepareForSegue中使用它。< / p>

如果您使用indexPathForSelectedRow,则会始终返回第一行的indexpath

希望这有帮助!

答案 1 :(得分:0)

在@implementation文件中定义此属性

@property(nonatomic) int indexOfSelectedRow;

didSelectROwAtIndexPath方法中执行此操作

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    self.indexOfSelectedRow=indexPath.row;


}

在您的prepareForSegue方法中,执行此操作 -

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {
    if ([segue.identifier isEqualToString:@"MallToVendor"]) 
  {
    MingieAdvertisementIndividualViewController *destViewController=segue.destinationViewController;
    destViewController.mallName = [[advertisements objectAtIndex:self.indexOfSelectedRow] name];
  }
}