我知道这是重复问题,但我找不到解决问题的方法。我有两个控制器。 HomeViewcontroller的变量“myValue”的值不能通过使用ViewController类来设置。我不知道这里的问题,但代码工作没有错误。但是当我打印“myValue”时它显示nil.Destination视图控制器不是我想设置变量值的控制器。目标视图控制器是一个标签栏控制器,所以我想设置第一个标签栏和第二个标签栏视图控制器的变量值。这是我的代码: -
import UIKit
class ViewController: UIViewController {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if(segue.identifier == "gotoHome") {
println("1111")
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var viewController = storyboard.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
viewController.myValue = 8888
}
}
}
这是另一个视图控制器
import UIKit
class HomeViewController: UIViewController {
var myValue: Int!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
println(myValue)
}
}
答案 0 :(得分:1)
更改为:
let viewController = segue.destinationViewController as! HomeViewController
答案 1 :(得分:0)
您正在myValue
中打印viewDidLoad
的值,当您从故事板中对其进行实例化时,会调用该值myValue
。您在创建实例后设置了myValue
。例如,尝试在viewWillAppear
中打印msvcr120d.dll error
,然后设置它。