我已经阅读了很多关于在Swift iOS编程中跨视图控制器移动数据的方法,但到目前为止我还没有找到一个大的共识:
关于Objective-C中的引用和指针的规则可能不适用于Swift,因此使用协议在内存中飞过的值可能不一样,或者我不知道(这就是我要问的原因)。
所以,以一种非常简单但做得很好的方式,如果我有一个变量说... - 结果 - 在ViewController1中的String类型如何在ViewController2中使它可用?我不需要强大的链接,只需要价值。
你会推荐哪种方式?
非常感谢你的回答。
答案 0 :(得分:2)
"跳跃"的常用方式从viewController1到viewController2是通过storyboard segue。这个segue可以通过多种方式进行修改:使用performSegueWithIdentifier
中的UIViewController
方法直接从故事板(即按钮)或代码进行修改。
无论执行segue的方式如何,都会在执行segue之前立即调用方法prepareForSegue
。在这个方法中,您可以获得对segue的目标viewController的引用,您可以在其中传递变量。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let viewController2 = segue.destinationViewController as ViewController2 {
// passing variable from vc1 to vc2
viewController2.result = self.result
}
}