我需要更新 TableViewController 中的一个变量,但我找不到方法,有人可以解释一下为什么这不起作用吗? 我要生气了。
在我的 View Controller 中,这是我正在运行的代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let TV = storyboard.instantiateViewControllerWithIdentifier("tbController") as myTableViewController
TV.x = "test"
然后,从 TableViewController 类:
class myTableViewController: UITableViewController {
var x:String!
override func viewDidLoad() {
super.viewDidLoad()
println("Value of x is: \(self.x)")
}
}
打印出来的值是:nil
为什么?这有什么问题?我不明白:-(
更新图片
最佳答案
首先,给 ViewController 和 TableViewController 之间的 segue 一个标识符(例如:“TableViewSegue”
然后在 ViewController 中,使用 prepareForSegue
将数据从 ViewController 传递到 TableViewController
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
if segue.identifier == "TableViewSegue" {
let vc = segue.destinationViewController as myTableViewController
vc.x = "Test"
}
}
关于ios - 更新 TableViewController 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26533449/