2

デフォルト設定になるように値を設定してviewDidLoadいるので、そのViewControllerにロードするたびにデフォルト値がすでに設定されています。

ここで使用してNSUserDefaultsいます:

- (void)viewDidLoad
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:1 forKey:@"defaultKey"];

    NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];

    if (defaultKey == 1){
    // do something 1
    } else if ( defaultKey == 2){
    // do something 2
    }
}

しかし、私が欲しかったのは、ボタンが押されたときです。たとえば、button2、

-(IBAction) button2Pressed:(id)sender {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];
}

値が変わります。たとえば、そのViewControllerを再度ロードしてから

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];

次にロードされる設定になります。

4

4 に答える 4

2

このようにします

- (void)viewDidLoad
{


    NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];

    if (defaultKey == 1){
    // do something 1
    } else if ( defaultKey == 2){
    // do something 2
    }
   else 
   {
        //for the first time
          NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:1 forKey:@"defaultKey"];
   } 
}

-(IBAction) button2Pressed:(id)sender {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];
}
于 2012-06-21T06:16:51.430 に答える
0

このようにしてみてください

NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];
    if(defaultKey == 0){
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
        [prefs setInteger:1 forKey:@"defaultKey"];
    }else if (defaultKey == 1){
        // do something 1
    } else if ( defaultKey == 2){
        // do something 2
    }
于 2012-06-21T06:19:53.320 に答える
0

それは意味がありません。デフォルト値(1または2)を設定することから始める必要があります。私の正直な意見では、AppDelegateでこれを行う必要があります。

  NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
  // it will return 0 if it doesn't exist
  if([prefs integerForKey:@"defaultKey"] == 0){
       [prefs setInteger:1 forKey:@"defaultKey"];
  }

このようにして、デフォルト値を設定しました。その後、このロジックを次のように保持できますviewDidLoad

- (void)viewDidLoad
{
    NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];

    if (defaultKey == 1){
    // do something 1
    } else if ( defaultKey == 2){
    // do something 2
    }
}

そして、ボタンが押されたときに残りのロジックを使用します。

-(IBAction) button2Pressed:(id)sender {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];
}
于 2012-06-21T06:20:47.467 に答える
0

次の2つのことを行う必要があり
ます。1。変更を保持するためにユーザーのデフォルトを更新するたびに、次のことを行う必要があります。

[prefs synchronize];

2.次のコードを使用します:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSInteger defaultKey = [prefs integerForKey:@"defaultKey"];
if(defaultKey == 0) //This is when you haven't set it and as it's integer you will get 0
{
    [prefs setInteger:1 forKey:@"defaultKey"];
    [prefs synchronize];
    //Do whatever you will do when it's 1
}
else if(defaultKey == 1)
{
   //Do something else
}
else if(defaultKey == 2)
{
  //Do something else
}


于 2012-06-21T06:23:45.660 に答える