保存标签与NSUserDefaults的
大家好我有保存按钮的标签的问题,当我点击:保存标签与NSUserDefaults的
- (IBAction)addButtonSeconds:(id)sender {
if ([sender tag] == 1) {
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:@"Off" forKey:@"time"];
[_editButton setImage:[UIImage imageNamed:@"ВЫКЛ.png"] forState:UIControlStateNormal];
[_plus setEnabled:YES];
[_minus setEnabled:YES];
[_editButton setTag:2];
} else if ([sender tag] == 2){
[_editButton setImage:[UIImage imageNamed:@"ВКЛ.png"] forState:UIControlStateNormal];
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:@"ON" forKey:@"time"];
[_plus setEnabled:NO];
[_minus setEnabled:NO];
[_editButton setTag:1];
}
这是初始化方法
if ([[standartDefaults stringForKey:@"time"]isEqualToString:@"ON"]) {
self.editButton.tag = 2;
}else{
self.editButton.tag = 1;
}
如果有人可能会说我在哪里我的问题,谢谢。
您看起来像在您的addButtonSeconds:
内期望的行为不同于您在初始化过程中的行为。
在初始化:
self.editButton.tag == 2; // when "time" is "ON"
self.editButton.tag == 1; // when "time" is not "ON"
在addButtonSeconds:
:
self.editButton.tag == 1; // when "time" is "ON"
self.editButton.tag == 2; // when "time" is not "ON"
不过,我不知道是你写的逻辑是有道理,还是必须使用的tag
财产。考虑继承UIButton
,或者直接使用现有的setSelected:
和isSelected
的UIButton
。
编辑:我会根据您的意见修正您的代码。
- (IBAction)addButtonSeconds:(id)sender {
[_editButton setSelected:![_editButton isSelected]];
[_plus setEnabled:![_editButton isSelected]];
[_minus setEnabled:![_editButton isSelected]];
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:@([_editButton isSelected]) forKey:@"editSelected"];
}
在初始化:
[_editButton setImage:[UIImage imageNamed:@"ВЫКЛ.png"] forState:UIControlStateNormal];
[_editButton setImage:[UIImage imageNamed:@"ВКЛ.png"] forState:UIControlStateSelected];
[_editButton setImage:[UIImage imageNamed:@"ВКЛ.png"] forState:UIControlStateSelected|UIControlStateHighlighted];
[_editButton setSelected:[[standartDefaults stringForKey:@"editSelected"] boolValue]];
谢谢你的回答我改变了setSelected但我想保存图像的位置,当我点击例如当我去其他控制器后,回去后我的位置的按钮必须保存。 – 2014-10-30 19:40:57
我不知道我明白你在问什么。您的评论问题与您的原始问题完全不同。你的意思是你想保存你的'UIButton'的'frame.origin'吗? – 2014-10-30 19:43:43
是的,例如当我点击按钮图像的按钮是改变,点击后,他与第一个图像改变,我需要保存按钮的图像,当改变与NSUserDefaults。 – 2014-10-30 19:48:22
这是什么问题?你发布的代码有什么问题? – rmaddy 2014-10-30 18:54:27
我会问你使用标签。 – Abizern 2014-10-30 18:54:32
我会回应说,我不惜一切代价避免使用标签。他们几乎总是在视图中促进持有状态,这是你不应该做的。 – Fogmeister 2014-10-30 18:57:01