簡體   English   中英

何時為嵌入式viewController調用prepareForSegue?

[英]When is prepareForSegue called for embedded viewController?

我有一個viewView內嵌的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之后何時調用此方法?

首先在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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM