Ios Swift将变量设置为另一个ViewController

Ios Swift将变量设置为另一个ViewController,ios,swift,swift2,Ios,Swift,Swift2,我有两个标签。我想将数据从一个选项卡设置到另一个选项卡。例如,我有一个切换到另一个选项卡的代码: func foundCode(code: String) { print("Code has been found: \(code)") // MySecondViewController.codeSetter(code); self.tabBarController?.selectedIndex = 1; } 设置它的最佳方式是什么?或者委托这个变量。。。但是如何使用呢?

我有两个标签。我想将数据从一个选项卡设置到另一个选项卡。例如,我有一个切换到另一个选项卡的代码:

func foundCode(code: String) {
    print("Code has been found: \(code)")
    // MySecondViewController.codeSetter(code);
    self.tabBarController?.selectedIndex = 1;
}

设置它的最佳方式是什么?或者委托这个变量。。。但是如何使用呢?

使用
NSUserDefaults
的简单示例:

将数据存储到第一个选项卡中:

let testInstance = 1
NSUserDefaults.standardUserDefaults().setInteger(testInstance, forKey: "pass")
现在,在另一个选项卡中,您可以通过以下方式从内存中读取数据:

let instanceFromAnotherTab = NSUserDefaults.standardUserDefaults().integerForKey("pass")
print(instanceFromAnotherTab)

希望有帮助。

如果在第一个控制器中设置一个变量,如:

var code:String!
在你的职能中:

func foundCode(code: String) {
    print("Code has been found: \(code)")
    self.code = code

    // MySecondViewController.codeSetter(code);
    self.tabBarController?.selectedIndex = 1;
}

我认为您应该能够在第二个控制器中访问它(我认为您在top中声明的变量在您的所有类中都可以访问)

如果您的数据很小,您可以使用默认值。在第一个选项卡中,我计算了代码,在所有操作之后,我希望切换选项卡并根据此代码显示信息。我可以使用“segue”来执行此操作吗??这是一种非常糟糕的做法,每次在选项卡之间更改时,都会存储和读取用户默认值。更好的方法:你能解释一下为什么这是一种不好的做法吗?因为我从来没有见过
NSUserDefaults
的任何负面影响@DejanSkledarI只会说,当您尝试将自定义对象保存到NSUserDefaults时,事情已经变得不必要的复杂。以下是apple允许设置IntegerWorkey的原因@abizen和dejan Skleder请查看此::如果真的没有得到,则apple必须从开发端删除NSUserDefaulty