Xcode - 传递 属性 以在故事板中查看控制器

Xcode - Pass property to view controller in storyboard

我想将属性传递给从情节提要中的容器视图创建的视图控制器。问题是我不知道怎么办。

蓝色矩形是我有两个容器视图的区域,每个容器都引用一个视图控制器(一个是顶部的自定义 table 视图控制器,我很感兴趣,另一个是下面的视图控制器)。

问题是我的自定义 table 视图控制器需要一些属性。我想传递 class 中的属性,我在其中实例化 Storyboard(故事板是从 toher class 调用的)。包含容器视图的视图控制器实例化如下所示:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Phenotype" bundle:nil];
        GeneralViewController *vc = [sb instantiateViewControllerWithIdentifier:@"phenotype"];
        [vc setProperty:property]; // I would like to pass this property to the custom table view controller.
        [self.navigationController pushViewController:vc animated:YES];

我尝试从 class 获取 table 视图控制器,我在此处实例化 stroyboard 以设置 属性 此时

TableViewController *tablevc = [sb instantiateViewControllerWithIdentifier:@"table"];
    [tablevc setProperty:property];

...但没有任何成功。

有人知道如何直接从实例化故事板的视图控制器访问自定义 table 视图控制器的 属性 吗?

感谢您的帮助,

Select 你从蓝色矩形嵌入 segue 到顶部的 tableView 并给它一个 segue 标识符 :) 假设 segue 标识符是 "abcd".

在你的ViewController有容器写入

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "abcd" {
            let tableView : YourTableViewClass = segue.destination as! YourTableViewClass
            //pass whatever params want :)
        }
    }

编辑

嵌入式 segue 的行为与其他 segue 一样,除了一个例外,您必须以编程方式执行它们或触发某些事件,其中嵌入式 segue 在容器加载时自动执行 :)

所以你可以有 segue 标识符,在 prepareForSegue 中编写代码就像你为其他 segue 所做的那样:)