视图控制器之间使用segue传递variables

我使用Swift和Xcode 6,并想使用Segue从一个View Controller传递一个variables到另一个。

我创build了一个名为“MainToTimer”的segue,一旦按下button就会触发它。 我希望能够在第二个视图控制器上使用名为“持续时间”的variables。

是否有可能传递多个variables和常量?

我需要哪些代码与每个View Controller关联?

先谢谢你。

首先,设置属性/属性来保存你的第二个视图控制器(目的地)的variables。

class YourSecondViewController: UIViewController { var duration:Double? } 

然后让你的button触发你的自定义继续。 使用你的variables('duration')作为发件人的参数。

 class YourFirstViewController: UIViewController { @IBAction func buttonTapped(sender: AnyObject) { self.performSegueWithIdentifier("MainToTimer", sender: duration) } } 

最后,通过覆盖prepareForSegue方法传递这个发送者数据:

 override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "MainToTimer") { let secondViewController = segue.destinationViewController as YourSecondViewController let duration = sender as Double secondViewController.duration = duration } } 

是的,也可以传递多个variables和常量,再次使用prepareForSegue的“sender”参数。 如果您有多个要传入的数据,请将它们放在数组中,并将该数组作为发件人。

在第一个ViewController地方(模态赛格):

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { let theDestination = (segue.destinationViewController as ViewController2) theDestination.Duration2 = Duration } 

ViewController2更改为第二个ViewController的名称。 在ViewController2创build一个类variables:

 var Duration2 = (whatever the type - UInt8 I guess for time) 

而已。 Duration2的值将是第一个ViewControllerDuration Duration2的值。