2017-04-19 4 views
0

UISwitchまたはUISliderの値を保持しておくと、ViewControllerを終了して戻ったときに、その値をそのまま残すことができますか?ViewControllerを切り替えるときのUISwitch/UISliderの値

私は迅速な知識や経験がありませんので、できればObjective-Cで説明してください!

+1

これは、アプリケーションを終了するときにその値を保持する必要がありますかによって異なりますか? – Larme

+0

いいえ、アプリが起動しているときだけです。アプリが終了するとリセットできます。 –

+1

'UISlider'の値をどこかに保存する必要があります。 NSUserDefaultは候補になります。 –

答えて

0

以前の質問で接続を確立したAppDelegate内で、値をモデルに保存することも、簡単にすることもできます。注:MVCについて学ぶ必要があります。これはあなたのために簡単に保つことです。 MVCのための良い出発点は、この答えは次のとおりです。Design Pattern - Objective-C - MVC Model View Controller

は、その後、あなたのviewController.mで次回は

を実装し、それをロードするに

- (void)viewDidDissapear { 
    MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [appDelegate setSliderValue:YourSlider.value]; 
} 

を実装

@property double sliderValue; 

であなたのappDelegate.hを拡張します

- (void)viewWillAppear { 
    MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [yourSlider setValue:appDelegate.sliderValue]; 
} 

AppDelegate.hファイルを次の場所にインポートすることを忘れないでください。 viewCOntroller.mファイルを表示します。

#import "MyAppDelegate.h" 
1

このようにNSUserDefaultにスイッチ状態を保存できます。

を使用するためにあなたのswichボタン

.hファイル

- (IBAction)changeStatus:(id)sender; 

.mファイル

- (IBAction)changeStatus:(id)sender { 
Boolean status; 
UISwitch *mySwitch = (UISwitch *)sender; 
if ([mySwitch isOn]) { 
    status = 1; 
} else { 
    status = 0; 
} 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setBool:status forKey:@"switchStatus"]; 
[defaults synchronize]; 

}

と負荷に接続されているアクションを追加します。

関連する問題