私は xcode を約 9 か月間使用しており、アプリの完成に近づいていますが、小さな問題が 1 つあります...
背景を少し。いくつかのデータをランダムに吐き出すボタンがあります [この場合はワークアウト]。そのウィンドウには、データを更新してラベルをクリアするボタンもあります。
ユーザーがビューを変更したり、アプリを終了したりしても、画面に randomStretchLabel1、randomStretchLabel2 を保持したいと考えています。画面に表示されたままにして、ユーザーが randomButton または clearAllWorkouts を押したときにのみリロードできるようにします。
StretchViewController へのテーブル ビューの図
@interface StretchViewController ()
{
NSArray *stretchOptions;
}
- (IBAction)clearAllWorkouts:(id)sender;
- (IBAction)randomStretchButton1:(id)sender;
@property (retain, nonatomic) IBOutlet UILabel *randomStretchLabel1;
@property (retain, nonatomic) IBOutlet UILabel *randomStretchLabel2;
@end
@implementation StretchViewController
@synthesize randomStretchLabel1, randomStretchLabel2;
- (IBAction)clearAllWorkouts:(id)sender {
randomStretchLabel1.text = @"";
randomStretchLabel2.text = @"";
}
- (IBAction)randomStretchButton1:(id)sender {
stretchOptions = [[NSArray alloc]initWithObjects:@"90/90 Hamstring", @"Adductor", @"Adductor/Groin", @"All Fours Quad Stretch",@"Ankle Circles", @"Ankle On The Knee" @"Anterior Tibialis-SMR", @"Arm Circles", @"Behind Head Chest Stretch", @"Brachialis-SMR", @"Calf Stretch Elbows Against Wall", @"Calf Stretch Hands Against Wall", nil];
int labelIndex = rand()%stretchOptions.count;
[randomStretchLabel1 setText:[stretchOptions objectAtIndex:labelIndex]];
int labelIndex2 = rand()%stretchOptions.count;
[randomStretchLabel2 setText:[stretchOptions objectAtIndex:labelIndex2]];
}
提案に基づいて次のように変更しましたが、それでも私が望むものは得られません。テーブル ビュー (他のすべてのワークアウトが保存されている場所) に戻ると、ラベルは自動的にリセットされます。
- (void)archive
{
[[NSUserDefaults standardUserDefaults] setValue:randomStretchLabel1.text forKey:@"randomStretchLabel1"];
[[NSUserDefaults standardUserDefaults] setValue:randomStretchLabel2.text forKey:@"randomStretchLabel2"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)unarchive
{
randomStretchLabel1.text = [[NSUserDefaults standardUserDefaults] valueForKey:@"randomStretchLabel1"];
randomStretchLabel2.text = [[NSUserDefaults standardUserDefaults] valueForKey:@"randomStretchLabel2"];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)viewDidUnload
{
[self setRandomStretchLabel1:nil];
[self setRandomStretchLabel2:nil];
[super viewDidUnload];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc {
[super dealloc];
}
@end