我正在开发一个简单的 iOS Swift 应用程序。该应用程序有 2 个视图控制器和一个已编程为连接到另一个视图控制器的按钮,如下所示:
@IBAction func pushMe(sender: AnyObject) {
self.performSegueWithIdentifier("changeIt", sender: nil)
}
上面的方法有效,但我希望能够从当前视图控制器保存 2 个变量,并使它们可供我正在使用的视图控制器使用。所以我这样做了:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "changeIt" {
var testVar1 = "Hello"
var testVar2 = "World"
}
}
在我要继续的视图控制器中添加了:
var testVar1:String!
var testVar2:String!
该应用程序可以运行,但是当我尝试访问 testVar1 或 testVar2 时,应用程序就会崩溃。我不确定为什么这不能按预期工作?
由于变量未初始化,因此您省略了目标视图控制器。使用下面的代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "changeIt" {
let dvc = segue.destinationViewController as! YourDestinationViewController
dvc.testVar1 = "Hello"
dvc.testVar2 = "World"
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)