ステッパーを使用して myLabel の値を設定する以下のコードがあります。値を NSUserDefaults に保存するように設定しました。
1) ステッパーの値を、ラベルに入力した値と同じ値に設定する必要もあります。誰かがこれを行う方法をアドバイスできますか? (これがあるべきだと思うコードにコメントを追加しました。)
2) saveString をロードする前に実際に設定されていることも確認し、そうでない場合はデフォルト値を設定したいと思います。また、これを達成する方法を教えてください。
ありがとう。
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadString = [defaults objectForKey:@"saveString"];
self.myLabel.text = loadString;
// Need to set the stepper value to that in loadString
}
- (IBAction)stepChanged:(id)sender {
NSString *saveString = [NSString stringWithFormat:@"%d",
[[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveString forKey:@"saveString"];
[defaults synchronize];
self.myLabel.text = saveString;
}
次のようにコードを更新しました:-
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *loadNumber = [defaults objectForKey:@"saveNumber"];
self.myLabel.text = [NSString stringWithFormat:@"%@",loadNumber];
UIStepper *stepper = [[UIStepper alloc] init];
stepper.value = [NSNumber numberWithDouble:loadNumber];
}
- (IBAction)stepChanged:(id)sender {
NSNumber *saveNumber = [NSNumber numberWithDouble:[(UIStepper *)sender value]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveNumber forKey:@"saveNumber"];
[defaults synchronize];
self.myLabel.text = [NSString stringWithFormat:@"%@",saveNumber];
}
ただし、「stepper.value = [NSNumber numberWithDouble:loadNumber];」という行 ステッパーは double のみを受け入れると思いますが、それを設定するために何が間違っているのかわかりません。
私が達成する必要があるのは次のとおりです。- 1) saveNumber の NSUserDefaults にデフォルト値を設定します。これは、ユーザーがバリエーションを作成するまで使用されます。2) ロードまたはビューが表示されたら、saveNumber を使用して stepper.value と myLabel の両方の値を設定します。3) ステッパーで変更すると、値が myLabel で更新され、NSUserDefaults saveNumber も更新されるようにします。
誰かが私がどこで間違っているのかアドバイスして、私のコードを修正してください。
さらに、これを入力しているときに気付いたのは、最終的なアプリでは、NSUserDefaults savedNumber 値を使用するビューコントローラーとは別のビューコントローラーでこの設定を行うことです。これを念頭に置いて、このviewControllerだけでなく、値が必要な他のviewControllerでもsavedNumberを確実に利用できるようにする方法を教えてください。
どうもありがとう。