什么时候是prepareForSegue调用嵌入式viewController?

时间:2013-03-07 08:21:07

标签: ios segue uistoryboardsegue

我在viewController中嵌入了一个tableViewController。问题是我想将tableViewController的原型单元格中的一些UITextFields值传递给主viewController。我的策略是使用prepareForSegue来获取tableViewController中的所有东西。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"DiveGearDetail"]) {
        DiveGearDetailTableViewController *DGTVC = [segue destinationViewController];
        gear_name = DGTVC.nameLabel.text;
        NSLog(@"Gear name: %@", gear_name);
    }
}

这是一个好策略吗?何时在viewDidLoad之后调用此方法?

1 个答案:

答案 0 :(得分:1)

首先写入tableview的didSelectRowAtIndexPath方法

[self performSegueWithIdentifier:@"DiveGearDetail" sender:nil];

此方法将调用prepareForSegue,您可以在目标类中指定要分配的值,如下所示:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"DiveGearDetail"]) {
        DiveGearDetailTableViewController *DGTVC = [segue destinationViewController];
        DGTVC.gear_name = @"Your value"; // OR [[segue destinationViewController] setYourObject:value];
        NSLog(@"Gear name: %@", gear_name);
    }
}