Ios 在嵌入选项卡栏控制器的VCs之间以Swift方式传递数据

Ios 在嵌入选项卡栏控制器的VCs之间以Swift方式传递数据,ios,swift,Ios,Swift,我试图在一个选项卡栏控制器中嵌入的两个VCs之间传递数据。我只想在第四个VC(附加代码图像中的ResultViewController)中提供前三个VC的输入文本字段条目,以便在最后一个(第四个)视图控制器中执行iAction触发的计算。我对斯威夫特很陌生,但做了很多研究,认为代表们才是前进的方向……但不确定。我觉得这应该很直截了当。似乎我看过的每一段关于代表们的视频都使用segues,这是必需的吗?我只想将前三个VC的多用户输入传递给最后一个VC来执行计算。感谢您的帮助 是否逐个按下视图控制器

我试图在一个选项卡栏控制器中嵌入的两个VCs之间传递数据。我只想在第四个VC(附加代码图像中的ResultViewController)中提供前三个VC的输入文本字段条目,以便在最后一个(第四个)视图控制器中执行iAction触发的计算。我对斯威夫特很陌生,但做了很多研究,认为代表们才是前进的方向……但不确定。我觉得这应该很直截了当。似乎我看过的每一段关于代表们的视频都使用segues,这是必需的吗?我只想将前三个VC的多用户输入传递给最后一个VC来执行计算。感谢您的帮助


是否逐个按下视图控制器

如果是,则只需将dictionary变量放在viewcontrollers中,并将值传递到
prepareforsgue


否则,在选项卡栏VC中使用公共变量,并将值收集到viewcontrollers中的该变量中,最后在第四个VC中使用该变量。

也许您正在使其变得比您需要的更复杂。考虑创建一个包含所有视图控制器都可以访问的数据的单点对象。如果这是不可接受的,您可以像下面这样获得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
            }
        }
    }
}

请将代码粘贴到您的问题中。谢谢Venkat。我不是一个接一个地推他们。我只是让用户在前三个VC上输入数据,然后转到最后一个VC(使用选项卡栏中的nav),然后单击执行我设置的计算的iAction。Venkat,您能否添加一些关于上面所述第二种方法的详细信息……在选项卡栏VC中创建一个公共变量。谢谢Hanks ryantxr我真的很感谢你的意见。我确实想到了这一点。我会试试你的建议。我只需要一点指导。ryantxr,你能解释一下单体设计过程吗?我已经尝试过很多在互联网上发表过的设计,但都没有成功。我正在使用Xcode 7.2.1(swift 2),因此我认为这给我带来了一些困难。谢谢。创建一个新类并将变量作为类变量添加到其中。谢谢麻烦制造者:)