在标签栏控制器

时间:2016-03-14 04:01:14

标签: ios swift

我正在尝试在Tab Bar Controller中嵌入的两个VC之间传递数据。我只想在第4个VC(附加代码图像中的ResultViewController)中的前三个VC中输入文本字段条目,以执行最后一个(第4个)视图控制器中的IBAction触发的计算。我是一个很快的新人,但已经做了很多研究,并认为代表是要走的路......但不确定。我觉得这应该是非常直接的。似乎每个我观看过代表的视频都使用了segues,这是必需的吗?我只想将前三个VC的多用户输入传递给最后一个VC来执行计算。任何帮助表示赞赏。

enter image description here

2 个答案:

答案 0 :(得分:0)

您是一个一个地推动视图控制器吗?

如果是,那么只需在viewcontrollers中使用字典变量并传递prepareForSegue中的值。

否则,在Tab Bar VC中使用公共变量并在viewcontrollers中将值收集到该变量中,然后最终在第4个VC中使用它。

答案 1 :(得分:0)

也许你使这比你需要的更复杂。考虑创建一个包含所有视图控制器可以访问的数据的单例对象。如果这是不可接受的,你可以像这样获得TabBarController的所有顶级控制器的列表。

func somefunc() {
    if let tabBarController = self.tabBarController {
        if let tabBarViewControllers = tabBarController.viewControllers {
            for vc in tabBarViewControllers {
                // do something to the view controller
                // set its delegate or whatever
            }
        }
    }
}