如何在其他viewcontrollers中获取nsuserdefault值
我有两个viewcontrollers。 在我的第一个viewcontroller中:
{ NSString *string=textField.text; NSUserDefaults *data = [NSUserDefaults standardUserDefaults]; [data setObject:string forKey:@"strings"]; [data synchronize]; }
如何在我的其他viewcontroller中获取字符串值?
在这里,您可以在您的应用程序中使用它来获取NSUserDefaults的商店价值。
// --- Saving NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; // saving an NSString [prefs setObject:@"TextToSave" forKey:@"keyToLookupString"]; // saving an NSInteger [prefs setInteger:42 forKey:@"integerKey"]; // saving a Double [prefs setDouble:3.1415 forKey:@"doubleKey"]; // saving a Float [prefs setFloat:1.2345678 forKey:@"floatKey"]; // This is suggested to synch prefs, but is not needed (I didn't put it in my tut) [prefs synchronize];
在这里,您可以在应用程序中使用它来获取NSUserDefaults的值。
// --- Retrieving NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; // getting an NSString NSString *myString = [prefs stringForKey:@"keyToLookupString"]; // getting an NSInteger NSInteger myInt = [prefs integerForKey:@"integerKey"]; // getting an Float float myFloat = [prefs floatForKey:@"floatKey"];
您可以使用在一个类中编写的相同代码访问应用程序的任何控制器(应用程序的任何类)中的NSUserDefaults
。
获取字符串值使用下面的代码
NSUserDefaults *data = [NSUserDefaults standardUserDefaults]; NSString *myString = [data objectForKey:@"strings"];
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; NSString *myString = [defaults stringForKey:@"strings"];
这是检索数据的方法。 请注意, NSUserDefault
不用于在两个控制器之间传递数据。 有更好的方法。
编辑:看过Shaan Singh的评论
要传递数据2视图控制器,您可以在第二个视图控制器中声明属性并从当前视图控制器访问该属性。
它已经在这里得到了很好的回答。
在另一个ViewController中,
NSUserDefaults *data = [NSUserDefaults standardUserDefaults]; NSString *string = [data objectForKey:@"strings"];
这将起作用,因为NSUserDefaults
是一个全局键值存储,它将在类和应用程序之间保持NSUserDefaults
。