Swift在两个tableviews之间传递数组。返回nil

时间:2015-01-20 09:44:37

标签: ios arrays swift xcode6

我对SWIFT编码很陌生。我的目的是将两个数组从Viewcontroller1传递给Viewcontroller2。但它在Viewcontroller2中返回零值。有人可以告诉我吗?

以下是ViewController1中的部分代码。

@IBAction func solve(sender: AnyObject) {
        //pass information to the nextviewcontroller
         func prepareForSegue ( segue: UIStoryboardSegue!, sender: AnyObject!) {
        if (segue.identifier == "Solve") {
        var svc = segue!.destinationViewController as ViewController2

        svc.toPass = self.force
            svc.toPass2 = stiffness

        }
        }

以下是ViewController2中的部分代码。

class ViewController2: UITableViewController {

    var toPass:[String]!
    var toPass2:[String]!

        override func viewDidLoad() {
            super.viewDidLoad()

             println(self.toPass)
                println(self.toPass2)
            // Do any additional setup after loading the view.
        }

完整的代码可以在这里找到。 https://github.com/cherrythia/SWIFTpassingarrays/blob/master/README.md

1 个答案:

答案 0 :(得分:0)

我创建了类似于你的项目(使用你的github链接),@ Sebastian Wramba是正确的。你必须分开这两个功能:

@IBAction func solve_pressed(sender: AnyObject) {
        self.performSegueWithIdentifier("Solve", sender: sender)
    }

override func prepareForSegue ( segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "Solve") {
        var svc = segue.destinationViewController as ViewController2

        svc.toPass = self.force
        svc.toPass2 = stiffness

    }
}

好的,解决了(双关语)。在这种特殊情况下,你必须给出你的segue标识符“Solve”。在第一个视图控制器中,选择push to View Controller2,转到第四个选项卡并将标识符设置为“Solve”。