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 に答える