如何保留UISwitch或UISlider的值,以便当您离开并返回ViewController时,它将具有与您离开时相同的值?
我对swift没有太多的知识或经验,所以如果可以,请在Objective-C中解释!
答案 0 :(得分: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];
}
加载使用
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
Boolean switchStatus = [defaults boolForKey:@"switchStatus"];
if (switchStatus)
{
[_switchButton setOn:YES animated:YES];
}else{
[_switchButton setOn:NO animated:YES];
}
答案 1 :(得分:0)
您可以将值保存在模型中,或者 - 为了方便您 - 在AppDelegate中,您在之前的问题中建立了连接。注意:您应该了解MVC - 这只是为了让您轻松。 MVC的一个很好的起点是这个答案:Design Pattern - Objective-C - MVC Model View Controller
使用
扩展appDelegate.h@property double sliderValue;
然后在你的viewController.m工具
中- (void)viewDidDissapear {
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate setSliderValue:YourSlider.value];
}
下次执行
时加载它- (void)viewWillAppear {
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[yourSlider setValue:appDelegate.sliderValue];
}
不要忘记在viewCOntroller.m文件中导入AppDelegate.h文件。
#import "MyAppDelegate.h"