1

我正在为我的应用程序进行下一次更新,并尝试在应用程序关闭或切换页面时将信息保存在我的 UILabels 上。这就是我所拥有的,每次按下按钮时,它都会更新我的 UILabel 以将前一个数字加 1,即 value = 0 但是当按下按钮时 = 1,但是每次我重新加载页面时它似乎都会重置,我想知道他们是否是一种保存该信息的方法,如果是,你怎么能这样做?下面是我的一些代码。

头文件

//Here I have created two labels that get updated when button pressed.
IBOutlet UILabel *label1;
IBOutlet UILabel *label2;

}
//Here I have created two variables that correspond to the change in number.
@property (nonatomic) int i;
@property (nonatomic) int s;

实施文件:

//Here I have instantiated the two variables in my viewWillAppear method.
- (void)viewWillAppear{

self.i = 0;
self.s = 0;

}

//Here I have my button that changes the value of the label.
-(IBAction)randomButton {

self.i++;
[self->label1 setText:[NSString stringWithFormat:@"%d", self.i]];

先谢谢了。回顾:如何保存我的 UILabel 的值,但允许它们在按下按钮时通过将值加 1 来更新?但我希望能够保存该价值并重新使用它。任何帮助将不胜感激。

更新:第 1 页(这是我的主页)

在此处输入图像描述

第 2 页(我的统计页面/游戏页面)

在此处输入图像描述

我希望能够保存那个号码,这是一个 UILabel。但是,当我玩了一会儿并获得高数字,然后在第二页的左上角按回,然后在第一页按 start agian 时,数字恢复为 0。我怎样才能让它们保持它们的价值?

这是我的问题(在.h中): 在此处输入图像描述

这是我的问题(以 .m 为单位): 在此处输入图像描述

再次更新:我的 .h 现在没有问题,但我的 .m 有很多: 在此处输入图像描述

这是我的 AppDelegate.h 在此处输入图像描述

4

2 回答 2

1

编辑您的 AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

//add thist 2 properties
@property (nonatomic, assign) NSUInteger counti;
@property (nonatomic, assign) NSUInteger counts;

@end

然后为您的视图控制器编辑您的代码

- (void)viewWillAppear:(BOOL)animated{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    [self->label1 setText:[NSString stringWithFormat:@"%d", appDelegate.counti]];
    [self->label2 setText:[NSString stringWithFormat:@"%d", appDelegate.counts]];
}

-(IBAction)randomButton {

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    appDelegate.counti = appDelegate.counti+1 ;
    [self->label1 setText:[NSString stringWithFormat:@"%d", appDelegate.counti]];


}

它应该工作

于 2013-04-20T13:08:49.183 回答
1

使用 NSUserDefaults 有什么问题吗?这样,它将在视图和应用程序关闭时保存。

将以下内容添加到您的按钮操作中:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setValue:aValue forKey:@"savedString1];

第一行用于快速访问。然后将值(aValue)存储在“savedString1”字符串下。

然后,根据您希望何时再次加载它,您将执行以下操作:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *returnAValue = [userDefaults valueForKey:@"savedString1"];

然后,这将使用先前的值声明一个新的 NSString。您可以将其包含在 viewDidLoad 中。

您也可以存储整数/其他东西 -integerForKey加载时只需使用而不是 valueForKey,并声明一个整数。

希望能帮助到你?

于 2013-04-20T14:58:22.457 回答