0

コントローラを「オフ」に切り替えてUISwitchViewControllerを終了し、View Controllerに戻ると、UISwitch「off」ではなく「on」(デフォルト値)が表示されます。ビューコントローラから/ビューコントローラに切り替えるときにUISwitchコントローラの値を保存するにはどうすればよいですか?

- (void)controlsEnabled:(BOOL)enabled
{
    self.onandoffSwitch.enabled = enabled;   
    if (enabled)
    {
        NSLog(@"ON");    
    }
    else
    {
        NSLog(@"OFF");     
    }
}
4

2 に答える 2

5

何らかの方法で設定を永続化する必要があります。を使用した例を次に示しNSUserDefaultsます。

[[NSUserDefaults standardUserDefaults] setBool:yourSwitch.on forKey:@"switchValue"];
[[NSUserDefaults standardUserDefaults] synchronize];

そして、ビュー階層を再度ロードするときにそれを読んでください:

NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
BOOL state = [[NSUserDefaults standardUserDefaults] boolForKey:@"switchValue"];
于 2013-02-25T21:52:58.637 に答える
0

スイッチの状態が保持されない理由として最も可能性が高いのは、元のインスタンスに戻るのではなく、コントローラーの新しいインスタンス (デフォルトのスイッチ状態で) を作成していることです。セグエを使用している場合、セグエを実行すると常に新しいコントローラーがインスタンス化されます (アンワインド セグエを除く)。また、モーダルに表示されたコントローラーは、それらへの強い参照をどこかに保持しない限り、閉じると割り当てが解除されます。したがって、スイッチの状態を維持する方法は、同じインスタンスに戻りたいかどうか、およびそれをどのように行うかによって異なります。

于 2013-02-25T22:45:22.083 に答える