0

Interface Builderを使用してスイッチをxibファイルにドラッグすると、IBで状態をオン/オフに設定できます。次回アプリが起動するまでスイッチの状態を保存して、スイッチを閉じる前と同じ状態にする方法はありますか?

4

3 に答える 3

3

NSUserDefaultsを使用して保存できます。

最初にスイッチを IBOutlet として接続します

@property (weak, nonatomic) IBOutlet UISwitch *mySwitch;

また、スイッチを IBAction、イベント タイプ「Value Changed」として接続します。

- (IBAction)switched:(id)sender;

次に、UIViewController のviewDidLoad

BOOL savedState = [[NSUserDefaults standardUserDefaults] boolForKey:@"mySwitch"];
[self.mySwitch setOn:savedState];

そして新しいswitched:アクションで

- (IBAction)switched:(id)sender
{
    if (sender == self.mySwitch)
    {
        [[NSUserDefaults standardUserDefaults] setBool:self.mySwitch.isOn forKey:@"mySwitch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
}

お役に立てれば。

于 2012-12-20T10:03:48.803 に答える
2

この目的でNSUserDefaultsを使用できます。

次のようにスイッチの状態を保存します。

BOOL yourSwitchState = yourSwitch.on;
[[NSUserDefaults standardUserDefaults] setBool:yourSwitchState forKey:@"Switch"];

ユーザーのviewWillAppearデフォルトから値を取得し、次のように切り替えるように設定します。

BOOL switchState = [[NSUserDefaults standardUserDefaults] boolForKey:@"Switch"];
yourSwitch.on = switchState;
于 2012-12-20T09:58:34.017 に答える
0

これを試して、

  • (void)handleSwitch:(UISwitch *)スイッチ

{

もし (スイッチオン)

{

     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchState"];

}

そうしないと

{ //

    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchState"];

}

}

次回アプリ起動時

switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchState"];

于 2012-12-20T09:58:08.467 に答える