我使用 Swift 和 Xcode 6,并希望使用 Segue 将一个变量从一个 View Controller 传递到另一个 View Controller 。
我创建了一个名为“MainToTimer”的转场,一旦按下按钮就会触发。我希望能够在第二个 View Controller 上使用名为“Duration”的变量。
是否可以传递多个变量和常量?
我需要将哪些代码关联到每个 View Controller ?
提前致谢。
最佳答案
首先,设置属性/属性以将变量保存在第二个 View Controller (目标)中。
class YourSecondViewController: UIViewController {
var duration:Double?
}
然后让您的按钮触发您的自定义转场。使用您的变量(“持续时间”)作为发件人的参数。
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
}
}
是的,也可以传递多个变量和常量,再次使用 prepareForSegue 的“sender”参数。如果您有多个数据要传入,请将它们放在一个数组中,并使该数组成为发送方。
SWIFT 3
从 Swift 3 开始,方法 prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
已更改为 prepare(for segue: UIStoryboardSegue, sender: Any?)
关于ios - 使用 segue 在 View Controller 之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597820/