1

我在 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 之后什么时候调用这个方法?

4

1 回答 1

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);
    }
}
于 2013-03-07T09:12:33.237 回答