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