我从界面生成器中获取了 UISwitch。那个时候它的状态是ON。运行应用程序后当我将它的位置更改为OFF并转到另一个屏幕并再次返回该屏幕时,开关状态显示ON而不是我之前设置的OFF。任何人都可以告诉我如何显示我设置的 UISwitch 位置或状态。现在,当我来到这个开关屏幕时,它总是显示为 ON。请帮我。提前致谢。
问问题
2311 次
5 回答
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"];
}
于 2012-05-28T09:47:23.527 回答
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"]];
于 2012-05-28T09:48:02.667 回答
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
于 2012-05-28T09:49:22.310 回答
0
您必须将值保存在
1. 模型类
2. NSUserDefaults
3. Plist
4. 文档文件中。
最好的方法是模型类。您将在 Stackoverflow 中轻松获得这些代码。
于 2012-05-28T09:49:50.603 回答
0
如果它是您在 IB 中添加的开关,您可以在那里设置其初始状态。否则,在将开关链接到 IBOutlet 后,您可以在 viewDidLoad 中添加如下内容:
[保存密码设置:否];
它会将开关设置为关闭状态。您需要确保开关链接到 IBOutlet 变量。
于 2012-05-28T09:51:15.663 回答