prepareforSegue不传递数据

时间:2016-02-11 00:36:08

标签: ios swift viewcontroller

我在使用prepareforSegue在视图控制器之间传递字符串( StringVar )时遇到问题。我已经研究了关于这个主题的各种教程,但我仍然没有成功(我是新手,所以问题可能是显而易见的)。我的代码结构如下:

原始ViewController:

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

//Prepare For Segue:
func prepareforSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var SVC = segue.destinationViewController as! StudyViewController
SVC.StringVar = "Hello"
}

目标ViewController:

class StudyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var StringVar = String()

//intervening code [omitted]

override func viewDidLoad() {
    super.viewDidLoad()
    print("StringVar = ", StringVar) 
    // Do any additional setup after loading the view.
}

viewDidLoad函数中的print语句工作正常,但StringVar仍为空。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

@michael所说的是你的prepareForSegue需要使用如下的override关键字:

override

Xcode应该为你纠正,所以一定要检查你的拼写。如果您不包含prepareforSegue关键字,那么您只需定义一个名为{{1}}的新函数。

您可以从我的教程中下载一个有效的prepareForSegue示例:

prepareForSegue project files