Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 保存多个不同视图的UISwitch状态_Ios_Objective C_Load_Save_Uiswitch - Fatal编程技术网

Ios 保存多个不同视图的UISwitch状态

Ios 保存多个不同视图的UISwitch状态,ios,objective-c,load,save,uiswitch,Ios,Objective C,Load,Save,Uiswitch,所以我有一个应用程序,有六个视图,总共包含36个开关。有没有一种简单的方法可以在用户轻弹时保存所有状态?我听说他们都被贴上标签或其他什么东西,但我不知道怎么做。我希望它们能够自动保存和加载 致以最良好的祝愿, Øyvind Larsen Runestad创建一个数组,该数组将存储交换机的所有状态值 将该数组保存为用户默认值 在应用程序启动时,读取该文件并初始化该数组并设置开关按钮的状态。我修复了它!在朋友的大力帮助下。我为每个交换机都提供了一个唯一的标记,并在my.h中将它们定义为: #defi

所以我有一个应用程序,有六个视图,总共包含36个开关。有没有一种简单的方法可以在用户轻弹时保存所有状态?我听说他们都被贴上标签或其他什么东西,但我不知道怎么做。我希望它们能够自动保存和加载

致以最良好的祝愿,
Øyvind Larsen Runestad创建一个数组,该数组将存储交换机的所有状态值

将该数组保存为用户默认值


在应用程序启动时,读取该文件并初始化该数组并设置开关按钮的状态。

我修复了它!在朋友的大力帮助下。我为每个交换机都提供了一个唯一的标记,并在my.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
然后,我在我的(iAction)save:(id)sender下添加了这个

最后,在我的super 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];
}
- (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];
    }
}
-(void)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
NSUserDefaults*def=[NSUserDefaults standardUserDefaults];
对于(int i=100;i<162;i++)
{
UISwitch*sw=(UISwitch*)[带标记的self.view视图:i];
[sw设置:[def boolforky:[NSString stringWithFormat:@“开关%d”,i]];
[sw addTarget:self action:@selector(switchChanged:)for ControlEvents:UIControlEventValueChanged];
}
}

我希望这有助于解决此特定问题的任何其他人。

是否使用interface builder?您可以使用interface builder中的“附加属性”部分为每个交换机设置“keyPath”属性。。。然后使用它自动设置/获取默认设置或应用程序控制器等的属性。这只是一个方向性的想法。
- (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];
    }
}