我从界面构建器中获取了UISwitch。那个时候它的状态是ON。运行应用程序后当我将它的位置改为OFF并转到其他屏幕再次返回到该屏幕时,切换状态显示ON而不是我先前设置的OFF。任何人都可以告诉我如何显示我设置的UISwitch位置或状态。现在,当我来到这个开关屏幕时它总是显示ON。请帮我。提前致谢。
答案 0 :(得分:3)
当您更改值时,将其保存到NSUserDefault,因此当您再次返回该屏幕时,您会查看首选项值并将其设置为开关
- (void)saveValue {
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
[preferences setBool:value forKey:@"switchOnOff"];
[preferences synchronize];
}
- (BOOL)readValue {
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
return [preferences boolForKey:@"switchOnOff"];
}
答案 1 :(得分:1)
更改开关状态时,请将值存储为NSUserDefaults中的整数,以及交换机所在的viewController的viewDidAppear方法。只需通过NSUserDefaults获取值来设置开关状态,就像这样
//store value to nsuserdefaulrs
[[NSUserDefaults standardUserDefaults] setBool:switch.on forKey:@"switchStatus"];
//get value from nsuserdefaulrs
[switch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"switchStatus"]];
答案 2 :(得分:1)
有一个UISwitch的插座,
@property (retain, nonatomic) IBOutlet UISwitch *sswitch;
并建立连接。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if( [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"] )
{
[sswitch setOn:YES]
}
else
{
[sswitch setOn:NO]
}
}
每当更改开关状态时,请将值保存在NSUserDefaults
答案 3 :(得分:0)
您必须在中保存值
1.模型类
2. NSUserDefaults
3. Plist
4.文件档案。
最好的方法是Model类。您将在Stackoverflow中轻松获取这些代码。
答案 4 :(得分:0)
如果它是你在IB中添加的开关,你可以在那里设置它的初始状态。否则,在将开关链接到IBOutlet后,您可以在viewDidLoad中添加如下内容:
[savePass setOn:NO];
并将开关设置为关闭状态。您需要确保开关链接到IBOutlet变量。