我有两个viewcontrollers。在我的第一个viewcontroller中:
{
NSString *string=textField.text;
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
[data setObject:string forKey:@"strings"];
[data synchronize];
}
如何在我的其他viewcontroller中获取字符串值?
答案 0 :(得分:24)
在这里,您可以在应用程序中使用它来获取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"];
答案 1 :(得分:4)
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSString *myString = [defaults stringForKey:@"strings"];
这是检索数据的方法。请注意NSUserDefault
不用于在两个控制器之间传递数据。有更好的方法。
编辑:看到Shaan Singh的评论后
要传递数据2视图控制器,您可以在第二个视图控制器中声明属性,并从当前视图控制器访问该属性。
它已经得到了出色的回答here。
答案 2 :(得分:4)
您可以使用在一个类中编写的相同代码访问应用程序的任何控制器(应用程序的任何类)中的NSUserDefaults
。
获取字符串值使用以下代码
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
NSString *myString = [data objectForKey:@"strings"];
答案 3 :(得分:3)
在另一个ViewController中,
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
NSString *string = [data objectForKey:@"strings"];
这将起作用,因为NSUserDefaults
是一个全局键值存储,它将在类和应用程序之间保持不变。