我在使用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仍为空。有任何想法吗?感谢。
答案 0 :(得分:1)
@michael所说的是你的prepareForSegue需要使用如下的override关键字:
override
Xcode应该为你纠正,所以一定要检查你的拼写。如果您不包含prepareforSegue
关键字,那么您只需定义一个名为{{1}}的新函数。
您可以从我的教程中下载一个有效的prepareForSegue示例: