Iphone 在swift中不使用序列将数据从一个视图控制器传递到下一个视图控制器

Iphone 在swift中不使用序列将数据从一个视图控制器传递到下一个视图控制器,iphone,swift,uiviewcontroller,ios8,segue,Iphone,Swift,Uiviewcontroller,Ios8,Segue,所以我有一个应用程序,你在第一个屏幕上选择一个按钮,它会根据你在第一个屏幕上选择的按钮将你带到另一个屏幕。因为我有这些可能不同的布局,我不能只使用一个从一个按钮到下一个视图控制器的序列,因为有一个中间屏幕。所以是这样的, var identifier: String = "" switch whereToGo { case "VC3a": identifier = "segueToVC3a" case "VC3b": identifier = "segueToVC3b"

所以我有一个应用程序,你在第一个屏幕上选择一个按钮,它会根据你在第一个屏幕上选择的按钮将你带到另一个屏幕。因为我有这些可能不同的布局,我不能只使用一个从一个按钮到下一个视图控制器的序列,因为有一个中间屏幕。所以是这样的,

var identifier: String = ""
switch whereToGo {
    case "VC3a": identifier = "segueToVC3a"
    case "VC3b": identifier = "segueToVC3b"
    default: break
}

if identifier != "" {
    performSegueWithIdentifer(identifier, sender: self)
}
1->2->3a | 3b | 3c | 3d等

因此,您在第一个屏幕上的选择决定了第三个屏幕的外观

因此,我想让第一个视图中的每个按钮都有一个值,通过一个segue发送到第二个视图,然后再次发送到第三个视图,并告诉它根据与第一个视图关联的值使用适当的segue到适当的第三个视图控制器。但我不能这样做,因为我不能设置第二个屏幕,使其与第三个屏幕的所有可能布局相衔接……至少我认为我不能

底线问题:在单击一个没有序列的按钮,同时又向下一个视图控制器发送数据(同样,没有序列存储数据)后,是否仍然可以转到另一个视图控制器

请帮帮我

所以我想让每个按钮都有一个值 在第一个视图中,通过segue将其发送到第二个视图,以及 然后再次发送到第三个视图,并告诉它使用正确的序列 根据与关联的值,将其添加到适当的第三视图控制器 第一种观点。但我不能那样做,因为我不能设定第二个 屏幕切换到第三个屏幕的所有可能布局…在 至少我认为我不能

你可以用segues做这件事;你只要把它们连接好就行了。您可以通过将控件从顶部的ViewController图标拖动到下一个ViewController来创建它们,而不是将分段连接到按钮

一旦创建了这样一个segue,单击生成的segue箭头,并在属性检查器中给它一个标识符(类似于“segueToVC3a”)

所以,对于从VC2到VC3a、VC2到VC3b等的每个阶段,您都会多次执行此操作

假设在第一个viewController中,您决定了
的whereToGo
值,并使用segue将其传递给第二个viewController。然后在第二个viewController中,您可以执行以下操作:

var identifier: String = ""
switch whereToGo {
    case "VC3a": identifier = "segueToVC3a"
    case "VC3b": identifier = "segueToVC3b"
    default: break
}

if identifier != "" {
    performSegueWithIdentifer(identifier, sender: self)
}
遵循以下步骤

1:创建一个名为Manager.swift的单独文件,并将此代码放入其中

//manager.swift

    import Foundation

    struct Manager {

    static var messageText = String()


    }
2:按Shift+Command+K键清理项目

3:在第一个视图中,控制器将messageText设置为要传递的数据

Manager.messageText = self.dataToPass
4:在第二个视图中,控制器检索数据并将内容设置为消息文本

self.dataToReceive = Manager.messageText

5:你完了

我没有投票否决瓦卡瓦马!我要投票了,这太简单了,我知道怎么做!非常感谢!!谢谢@KellysOnTop23!请通过单击旁边的复选标记将其变为绿色来接受我的答案。