如何将用户设置值保存到UISwitch?

时间:2012-05-28 09:42:51

标签: iphone ios uiswitch

我从界面构建器中获取了UISwitch。那个时候它的状态是ON。运行应用程序后当我将它的位置改为OFF并转到其他屏幕再次返回到该屏幕时,切换状态显示ON而不是我先前设置的OFF。任何人都可以告诉我如何显示我设置的UISwitch位置或状态。现在,当我来到这个开关屏幕时它总是显示ON。请帮我。提前致谢。

5 个答案:

答案 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变量。