【发布时间】:2012-05-03 16:34:12
【问题描述】:
我有一个名为 sosSwitch 的 UISwitch,它在 NSUserDefaults 键中保存了价值:MySwitch 我有 UIButton 命名为 sosBtn。 如何根据 NSUserDefaults 中保存的开关值显示/隐藏 sosBtn?我需要把代码放在哪里?在 viewDidLoad?谢谢!
【问题讨论】:
标签: ios xcode uibutton nsuserdefaults uiswitch
我有一个名为 sosSwitch 的 UISwitch,它在 NSUserDefaults 键中保存了价值:MySwitch 我有 UIButton 命名为 sosBtn。 如何根据 NSUserDefaults 中保存的开关值显示/隐藏 sosBtn?我需要把代码放在哪里?在 viewDidLoad?谢谢!
【问题讨论】:
标签: ios xcode uibutton nsuserdefaults uiswitch
假设您已经拥有:
@property (retain, nonatomic) IBOutlet UIButton *sosBtn;
@property (retain, nonatomic) IBOutlet UISwitch *sosSwich;
- (IBAction)sosSwitch:(id)sender;
试试这个:
-(void)viewDidLoad
{
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"MySwitch"])
{
self.sosBtn.hidden = NO;
[self.sosSwich setOn:YES animated:YES];
}
else
{
self.sosBtn.hidden = YES;
[self.sosSwich setOn:NO animated:YES];
}
}
- (IBAction)sosSwitch:(id)sender
{
UISwitch *mySosSwitch = (UISwitch *)sender;
if (mySosSwitch.on)
{
self.sosBtn.hidden = NO;
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"MySwitch"]; //YES means sosBtn should be visible
[[NSUserDefaults standardUserDefaults] synchronize];
}
else
{
self.sosBtn.hidden = YES;
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MySwitch"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
【讨论】: