0

私は 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
4

1 に答える 1