我无法从选定的表格单元格中获取唯一数据。我点击的每个单元格似乎都传递了相同的数据。我在这里做错了什么建议?
- (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 :(得分: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];
}
}