在两个视图之间共享一个NSString
我需要在我的应用程序中的两个视图之间共享一个string。 当用户结束游戏时,得分被转换成一个string。 然后,我需要将该string转移到不同的视图控制器中,以显示分数。 我有一个标签设置和所有,但视图不能识别string,即使我正在导入从中创buildstring的头文件。 任何帮助将是伟大的,谢谢。
这是我创buildstring的视图控制器
NSString *scoreString = [NSString stringWithFormat:@"%d", score];
这是我尝试在不同的视图控制器中显示string的地方
- (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
s, BOOL
s, NSArray
s等等。查看文档或者谷歌周围的例子。
你可以使用委托或NSUserDefaults
之前被问过类似的问题:
将variables传递给不同的视图控制器
如何在视图控制器之间传递variables?
编辑
[[NSUserDefaults standardUserDefaults] setObject:@"STRING HERE" forKey:@"MyKey"];
并检索
[[NSUserDefaults standardUserDefaults] objectForKey:@"MyKey"];