应用程序关闭时切换重置

时间:2015-10-12 23:10:06

标签: ios objective-c iphone

我在我的应用中将切换到我的设置视图中,并将其默认为OFF位置。我注意到如果你把它切换到ON,关闭应用程序然后再打开它,开关重置回OFF。我不确定代码是否有问题,或者我是否遗漏了某些东西。这是与viewcontroller.m

中的开关有关的代码
-(void)viewDidLoad {
if (kScheduleLocalNotifications) {
    if ([Singletons getBoolForKey:kLocalNotificationsEnabled]) {
        _weeklyReminderSwitch.on = NO;
    } else {
        _weeklyReminderSwitch.on = NO;
    }
    _scrollView.contentSize = CGSizeMake(320.0, 510.0);
} else {
    _weeklyReminderSwitchView.hidden = YES;
    CGRect versionLabelRect = _versionLabel.frame;
    versionLabelRect.origin.y = 431.0;
    _versionLabel.frame = versionLabelRect;
    _scrollView.contentSize = CGSizeMake(320.0, 455.0);
}

}

如果我将上面的IF语句作为NO / YES运行,它仍然具有相同的行为。如果我将其作为YES / NO运行,则默认情况下处于打开状态,但如果用户将其关闭则保持在OFF位置。

- (IBAction)weeklyReminderSwitchChanged:(id)sender {

if ([Singletons getBoolForKey:kLocalNotificationsEnabled]) {
    [Singletons setBoolForKey:kLocalNotificationsEnabled :NO];
    [_weeklyReminderSwitch setOn:NO animated:YES];
} else {
    [Singletons setBoolForKey:kLocalNotificationsEnabled :YES];
    [_weeklyReminderSwitch setOn:YES animated:YES];
}

}

1 个答案:

答案 0 :(得分:3)

在if语句的两个分支中将开关状态设置为“off”:

 _weeklyReminderSwitch.on = NO;

其中一个应该是YES。

就我个人而言,我认为将值直接分配给交换机会更具可读性且不易出错,例如:

_weeklyReminderSwitch.on = [Singletons getBoolForKey:kLocalNotificationsEnabled];