我需要在应用程序的两个视图之间共享一个字符串。当用户结束游戏时,分数将转换为字符串。然后,我需要将该字符串传输到另一个显示分数的视图控制器中。我已经设置了标签,尽管导入要从中创建字符串的头文件,但视图之外的所有对象都无法识别该字符串。任何帮助将是巨大的,谢谢。

这是创建字符串的我的视图控制器

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还可以处理intBOOLNSArray等。请查看the documentation或Google周围的示例。

关于ios - 在两个 View 之间共享NSString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6497211/

10-10 17:36