更新TableViewController中的variables
我需要更新TableViewController中的variables,我不能find办法做到这一点,有人可以解释为什么这是行不通的吗? 我生气了
从我的视图控制器这是我正在运行的代码:
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)") } }
印刷的价值是:无
为什么? 那有什么问题? 我不明白:-(
更新的图片
首先给ViewController和TableViewController之间的一个标识符(例如:“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.你应该将tableviewembedded到初始viewcontroller中,并将其创build为IBOutlet
编辑:从更新的图片看来,你想单击右上angular的button,并转到桌面视图。 因此,这是一个不正确的说法。
- 你也需要使你的ViewController(如果你select遵循上面的#1,tableviewcontroller或主viewcontroller)UITableViewDelegate和UITableViewDataSource
- 如果您希望更改显示的图像上列出的标签,则需要使用label.text =“String”分配来更改显示的内容
- 你还没有在tableviewcontroller里设置一个x的初始variables。
此外,作为一个点,您的操作顺序没有正确设置,所以它总是会显示零。 因为如果你看看你如何build立这个:
- 你在tableview的viewdidload中有一个println。 你正在打印的这个variables还没有设置,所以它是零
- 然后你创build了这个类的一个实例。 只要你创build了这个实例,viewdidload方法就会被触发,并打印出一个零线。
- 那么你通过TV.x方法改变了这个variables。 但是没有println检查,所以你不能看到你做了什么。