0

インターフェイス ビルダーから UISwitch を取得しました。その時の状態はONです。アプリケーションを実行した後、位置をOFFに変更して別の画面に移動し、もう一度その画面に戻ると、スイッチは以前に設定したOFFではなくONを示します。設定した UISwitch の位置または状態を表示する方法を教えてください。このスイッチ画面に来ると、常にオンと表示されるようになりました。私を助けてください。前もって感謝します。

4

5 に答える 5

3

値を変更するときは、NSUserDefaultに保存します。そのため、その画面に戻ったときに、設定値を確認して、スイッチに設定します。

- (void)saveValue  {
    NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
    [preferences setBool:value forKey:@"switchOnOff"];
    [preferences synchronize];
}

- (BOOL)readValue  {
    NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
    return [preferences boolForKey:@"switchOnOff"];
}
于 2012-05-28T09:47:23.527 に答える
1

スイッチの状態を変更するときは、値を整数としてNSUserDefaultsに格納し、スイッチが存在するviewControllerのviewDidAppearメソッドに格納します。このようにNSUserDefaultsから値を取得して、スイッチの状態を設定するだけです。

//store value to nsuserdefaulrs
    [[NSUserDefaults standardUserDefaults] setBool:switch.on forKey:@"switchStatus"];

//get value from nsuserdefaulrs

[switch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"switchStatus"]];
于 2012-05-28T09:48:02.667 に答える
1

UISwitch用のコンセントがあります。

@property (retain, nonatomic) IBOutlet UISwitch *sswitch;

接続します。

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if( [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"] )
    {
        [sswitch setOn:YES]
    }
    else
    {
        [sswitch setOn:NO]
    }
}

そして、スイッチの状態が変更されるたびに、値をに保存しますNSUserDefaults

于 2012-05-28T09:49:22.310 に答える
0

値を
1. モデル クラス
2. NSUserDefaults
3. Plist
4. ドキュメント ファイルに保存する必要があります。

最善の方法は Model クラスです。これらのコードは、Stackoverflow で簡単に取得できます。

于 2012-05-28T09:49:50.603 に答える
0

IB で追加したスイッチの場合は、そこで初期状態を設定するだけです。それ以外の場合は、スイッチを IBOutlet にリンクした後、次のような viewDidLoad を追加できます。

[savePass setOn:NO];

スイッチをオフ状態に設定します。スイッチが IBOutlet 変数にリンクされていることを確認する必要があります。

于 2012-05-28T09:51:15.663 に答える