我需要更新TableViewController中的变量,我找不到办法,有人可以解释一下为什么这不起作用吗? 我生气了。
从我的视图控制器中,这是我正在运行的代码:
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
为什么呢?这有什么问题?我不明白: - (
更新图片
答案 0 :(得分:1)
首先,给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"
}
}
答案 1 :(得分:0)
这里可能有几个问题。
1。您应该将tableview嵌入到初始viewcontroller中并将其创建为IBOutlet
编辑:从更新后的图片中,您可以点击右上角的按钮,然后转到桌面视图。因此,这是一个不正确的陈述。
此外,作为一点,您的操作顺序未正确设置,因此它将始终显示为零。因为如果你看看你是如何构建的: