2014-01-14 20 views
1

我無法從所選表格單元中獲取唯一數據。我點擊的每個單元格似乎都會傳遞相同的數據。任何建議我在這裏做錯了什麼?在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]; 
    } 
} 
+0

可以傳遞獨特的數據作爲'發件人'你在哪裏調用' - (void)performSegueWithIdentifier:(NSString *)identifier發件人:(編號)發件人' –

+0

你可以嘗試NSLog'[[advertisementsObjectsAtIndex:indexPath.row]名稱]位,看看他們是否真的每行打印不同的數據? –

+0

嘗試使用NSIndexPath * indexPath = [self.tableView indexPathForCell:sender]其中sender是單元格 – giorashc

回答

1

代替使用indexPathForSelectedRow,在didSelectRowAtIndexPath方法保存選擇indexpath.row整數變量prepareForSegue使用它。

如果您使用indexPathForSelectedRow它將始終返回第一行的indexpath

希望這會有所幫助!

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]; 
    } 
}