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