ios - 如何使用在 NSUserDefaults 中保存值的开关显示/隐藏按钮

标签 ios xcode uibutton nsuserdefaults uiswitch

我将 UISwitch 命名为 sosSwitch,它在 NSUserDefaults 键中保存值:MySwitch 并且我有 名为 sosBtn 的 UIButton。 如何根据保存在 NSUserDefaults 中的开关值显示/隐藏 sosBtn?我需要把代码放在哪里?在viewDidLoad?谢谢!

最佳答案

假设您已经拥有:

@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];
    }
}

关于ios - 如何使用在 NSUserDefaults 中保存值的开关显示/隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435602/

相关文章:

xcode - 数据模型更改时如何更新 NSCollectionViewItem?

ios - 点击UiButton时如何解决Bad access thread?

ios - 应用内购买错误代码 3 "Cannot connect to iTunes Store"

ios - 错误集成 Google Analytics for iOs App?

ios - 调用中的额外参数 'error'

ios - 如何在 Objective-C/iOS 中将文件上传到 Google Cloud Storage?

xcode - FBSDKGraphRequest 不能再发布图像和文本(不再有文本)

ios - Storyboard问题 : Gesture recognisers cannot be used on prototype objects

ios - 在 UITableViewCell 中,如何将单击按钮的样式更改为粗体,而其他单元格保持不变?

ios - Swift UIButton 子类化并根据变量改变颜色