2016-09-28 13 views
1

ページに4つのUISスイッチがあります。 AnimalSwitchをテストして、動作するかどうかを確認します。 デフォルトでは、スイッチがオフになって別のビューコントローラーに戻って戻ると、テストラベルにはまだスイッチがオフになっていると表示されますが、スイッチイメージにはオンであることが示されます。 これは変更しようとしているスイッチのコードです(これを修正するまで、他のものはそのままです)。 他のスイッチの名前は同じですが、 "Animal"という単語だけが変更されます。UISwitchが正しい状態を表示していないようです

let defaults = UserDefaults.standard 
    AnimalSwitch.setOn(true, animated: true) 
    if (defaults.object(forKey: "AnimalswitchState") != nil) { 
    AnimalSwitch.isOn = defaults.bool(forKey: "AnimalswitchState") 
    print("switched") 
} 
+0

修正済みです!問題は私のコードのどこかにありましたありがとうございました! – Femkeo

答えて

1

userDefaultsは更新されていますか?変更を適用するにはsynchronize()が必要であることを忘れないでください。スイッチとラベルをいつ更新していますか?スイッチの変更されたイベント値を使用してラベルを更新する必要があります。

+0

私はsynchronize()をもっと速くする必要はないと考えています –

+0

私はそれを見て、あなたの権利をバージョン8.0からもう必要なくしました。 – Femkeo

関連する問題