Swift 在 2 个表视图之间传递数组。 Returns 零

Swift passing arrays between 2 tableviews. Returns nil instead

我对 SWIFT 编码还很陌生。我的目的是将 2 个数组的值从 Viewcontroller1 传递到 Viewcontroller2。但它 returns 我在 Viewcontroller2 中的值为 nil。有人可以给我建议吗?

这是 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

我创建了类似于您的项目(使用您的 github link),@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"。在您的第一个视图控制器中,select 推送到 View Controller2,转到第四个选项卡并将标识符设置为 "Solve"。