所以我有一个包含六个视图的应用程序,其中包含所有36个开关。当用户轻弹时,是否有一种简单的方法可以保存所有状态?我听到了一些关于将它们全部放在标签或其他任何东西上的东西,但却不知道如何做到这一点。我希望他们能够自动保存和加载。
祝你好运, ØyvindLarsenRunestad
答案 0 :(得分:0)
创建一个存储开关的所有状态值的数组。
保存该数组是用户默认值。
在应用启动时,读取该文件并初始化该数组并设置切换按钮的状态。
答案 1 :(得分:0)
我修好了!非常感谢朋友的帮助。我给每个开关一个唯一的标签,并在我的.h中定义为:
#define Switchinfour0 100
#define Switchinfour1 101
#define Switchinfour2 102
#define Switchinfour3 103
#define Switchinfour4 104
#define Switchinfour5 105
#define Switchinfour6 106
#define Switchinfour7 107
#define Switchinfour8 108
#define Switchinfour9 109
#define Switchinfour10 110
#define Switchinfour11 111
#define Switchinfour12 112
#define Switchinfour13 113
#define Switchinfour14 114
#define Switchinfour15 115
#define Switchinfour16 116
#define Switchinfour17 117
#define Switchinfour18 118
#define Switchinfour19 119
#define Switchinfour20 120
#define Switchinfour21 121
#define Switchinfour22 122
#define Switchinfour23 123
#define Switchinfour24 124
#define Switchinfour25 125
#define Switchinfour26 126
#define Switchinfour27 127
#define Switchinfour28 128
#define Switchinfour29 129
#define Switchinfour30 130
#define Switchinfour31 131
#define Switchinfour32 132
#define Switchinfour33 133
#define Switchinfour34 134
#define Switchinfour35 135
#define Switchinfour36 136
然后,我在我的(IBAction)保存下添加了这个:(id)发件人;
-(IBAction)save:(id)sender{
//Switch save
NSUserDefaults* def = [NSUserDefaults standardUserDefaults];
for (int i = 100; i < 136; i++)
{
UISwitch* sw = (UISwitch*)[self.view viewWithTag:i];
[def setBool:sw.on forKey:[NSString stringWithFormat:@"Switch%d", i]];
}
[def synchronize];
然后,在viewDidLoad正上方我添加了这个:
-(void)switchChanged:(id)switchCtl
{
UISwitch* sw = (UISwitch*)switchCtl;
NSUserDefaults* def = [NSUserDefaults standardUserDefaults];
[def setBool:sw.on forKey:[NSString stringWithFormat:@"Switch%d", sw.tag]];
[def synchronize];
}
最后,在我的超级viewDidLoad中,我只是添加了这个:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSUserDefaults* def = [NSUserDefaults standardUserDefaults];
for (int i = 100; i < 162; i++)
{
UISwitch* sw = (UISwitch*)[self.view viewWithTag:i];
[sw setOn:[def boolForKey:[NSString stringWithFormat:@"Switch%d", i]]];
[sw addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];
}
}
我希望这可以帮助其他任何与这个特定问题斗争的人。