我对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
答案 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”。