1

私はiphoneを初めて使用します。ボタンをクリックすると、以下のアクションが実行される同期オフという名前のボタンがあることに少し疑いがあります。

- (IBAction)syncOffClickedInRegisterUserScreen:(id)sender {
    if ([syncOnorOff.titleLabel.text isEqualToString:@"Sync off"]) {
        [syncOnorOff setTitle:@"Sync on" forState:UIControlStateNormal];
    } 
    else {
        [syncOnorOff setTitle:@"Sync off" forState:UIControlStateNormal];
    }
}

上記のコードにより、ボタンをクリックするとタイトルが交互に表示されます。

NSUserDefaults を使用して、ボタンの状態を異なるタイトルで保存するにはどうすればよいですか。誰かがこれを知っているなら、私を助けてください....

4

2 に答える 2

4

このボタンの例を保存するには、キーを定義する必要があります。

 #define KEYSTATE @"key.syncState"

そしてあなたの機能で:

-  (IBAction)syncOffClickedInRegisterUserScreen:(id)sender {

    // Get User Defaults
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    if ([syncOnorOff.titleLabel.text isEqualToString:@"Sync off"]) {
        [prefs setBool:NO forKey:KEYSTATE];
        [syncOnorOff setTitle:@"Sync on" forState:UIControlStateNormal];
    } 
    else {
        [prefs setBool:YES forKey:KEYSTATE];
        [syncOnorOff setTitle:@"Sync off" forState:UIControlStateNormal];
    }

    // save 
    [prefs synchronize];
}

そして、次viewDidLoad:のようにボタンを設定するブール値を(たとえば)取得できます。

if ([[NSUserDefaults standardUserDefaults] boolForKey:KEYSTATE]) {
    // Set ON
}
else {
    // Set OFF
}
于 2012-05-16T09:27:45.197 に答える