ios - 什么时候为嵌入式 viewController 调用 prepareForSegue?

标签 ios segue uistoryboardsegue

我在 viewController 中嵌入了一个 tableViewController。问题是我想将 tableViewController 的原型(prototype)单元格内的一些 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);
    }
}

关于ios - 什么时候为嵌入式 viewController 调用 prepareForSegue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266259/

相关文章:

ios - 新的 iTunes 连接界面——是否应该立即在 "Prerelease"上看到它?

ios - 在 iOS 中,如何在原生应用中打开 YouTube 用户或 channel (不是视频)?

ios - 模态转场后看不到源 View Controller

iphone - 在 xcode 中创建自定义 segue

ios - 当调用某些函数时变量消失

ios - 在没有 Segue 的情况下调用 Storyboard

ios - UITableViewCell 内容被剪切

ios - "No code signing identities found"为 iOS 设备构建 cordova 应用程序时出错

ios - 将整数发送回前一个 View Controller

iphone - IOS模式segue返回黑屏