从表中传递选定的行以准备segue目标C.

时间:2016-02-16 13:05:21

标签: ios objective-c uitableview segue

我如何将这一行传递给我准备segue方法?

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  UITableViewCell *cell = [self.secondsTable cellForRowAtIndexPath:indexPath];
  [[self.pickerData objectAtIndex:indexPath.row] intValue];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if ([segue.destinationViewController isKindOfClass:[MyViewController class]]) {
    MyViewController * dvc = (MyViewController*)segue.destinationViewController;
    NSInteger row = [self.timePicker selectedRowInComponent:0];
    dvc.seconds =[[self.pickerData objectAtIndex:row] intValue];   
  }
}

我之前有一个时间选择器并将其转换为表格,所以我的代码中仍然有NSInteger row = [self.timePicker selectedRowInComponent:0];如何成功地将选定的行从我的表格视图传递到我的prepare for segue方法。

我试图像这样传递它而没有运气: - 我崩溃了

NSInteger row = [self.pickerData objectAtIndex:[[self.secondsTable indexPathForSelectedRow] row]];
dvc.seconds =[[self.pickerData objectAtIndex:row] intValue];

请帮助

1 个答案:

答案 0 :(得分:1)

您正在尝试将对象设置为NSInteger,即代码行 让我修改你的代码

NSInteger row1 = [[self.secondsTable indexPathForSelectedRow] row];// Get row value
NSInteger row = [self.pickerData objectAtIndex:row1];// Error line
dvc.seconds =[[self.pickerData objectAtIndex:row] intValue];// Use to have object

这就是你正在做的事情。

更改代码:

NSInteger row = [self.pickerData objectAtIndex:[[self.secondsTable indexPathForSelectedRow] row]];
        dvc.seconds =[[self.pickerData objectAtIndex:row] intValue];

致:

dvc.seconds = [[self.pickerData objectAtIndex:[[self.secondsTable indexPathForSelectedRow] row] intValue];

OR

NSInteger row = [[self.secondsTable indexPathForSelectedRow] row];// Get row value
dvc.seconds =[[self.pickerData objectAtIndex:row] intValue];// Use to have object