我需要在应用程序的两个视图之间共享一个字符串。当用户结束游戏时,分数将转换为字符串。然后,我需要将该字符串传输到另一个显示分数的视图控制器中。我已经设置了标签,尽管导入要从中创建字符串的头文件,但视图之外的所有对象都无法识别该字符串。任何帮助将是巨大的,谢谢。
这是创建字符串的我的视图控制器
NSString *scoreString = [NSString stringWithFormat:@"%d", score];
这是我尝试在其他视图控制器中显示字符串的地方
- (void)viewDidLoad {
self.scoreString = score.text;
[super viewDidLoad];
}
最佳答案
对于分数和类似数据,您可能需要使用NSUserDefaults
。可以随时从任何UIViewController访问它们。例如,您可以实现类似于以下方法的方法来保存和检索数据:
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"Score"];
[standardUserDefaults synchronize];
}
}
-(NSString*)retrieveFromUserDefaults
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *val = nil;
if (standardUserDefaults)
val = [standardUserDefaults objectForKey:@"Score"];
return val;
}
NSUserDefaults
还可以处理int
,BOOL
,NSArray
等。请查看the documentation或Google周围的示例。关于ios - 在两个 View 之间共享NSString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6497211/