クラス Aとクラス Bの2 つのビュー コントローラー クラスがあります。クラス A には UIswitch があり、ON か OFF かに応じて、クラス BでボタンがクリックされたときにクラスBで何らかのアクションが実行されます。
私がやろうとしているのは、スイッチの状態をクラス Aに保存し、それをクラス Bに取得することです
クラスAでは 、スイッチの状態を保存するために次のことを行いました
NSUserDefaults *switchState=[NSUserDefaults standardUserDefaults];
if(self.switch.on){
[switchState setBool:YES forKey:@"ON"];
}
else {
if (!self.switch.on){
[switchState setBool:NO forKey:@"OFF"];
}
}
[[NSUserDefaults standardUserDefaults]synchronize];
クラス Bでは、スイッチの状態を確認し、状態に基づいてアクションを実行します。Class Bで次のコードを使用しました。
-(void)whenButtonPressed{
if([[NSUserDefaults standardUserDefaults] objectForKey:@"ON"]){
// Perform Some action
}else if ([[NSUserDefaults standardUserDefaults] objectForKey:@"OFF"]){
//Perform Some other action
}
}
クラス A では、 スイッチがオンまたはオフになったときに、正しいIfまたはElse If条件ブロックを満たします。
しかし、クラス Bでは、クラス Aの結果に関係なく、 つまりスイッチがオフになっていても、最初のIf条件のみを満たします。
誰かが私の間違いを指摘できますか?