Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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
Cocoa touch 如何通过切换开关应用设置?_Cocoa Touch_Ios_Button_Switch Statement - Fatal编程技术网

Cocoa touch 如何通过切换开关应用设置?

Cocoa touch 如何通过切换开关应用设置?,cocoa-touch,ios,button,switch-statement,Cocoa Touch,Ios,Button,Switch Statement,可能重复: 嗨,我有两个观点 第一个视图包含主功能,第二个视图用于让用户更改第一个视图上的设置 我在第二个视图中插入了一个开关,以允许用户更改第一个视图上的设置 我有两个问题,如何使用开关设置值的是和否?然后,基于这个值 第一种观点会有不同的反应吗 注意:我使用导航方法更改视图,而不是添加子视图 提前谢谢 假设我有以下代码 第一视图 - (IBAction) addValue:(id)sender { aValue ++; } //the following will react accord

可能重复:

嗨,我有两个观点

第一个视图包含主功能,第二个视图用于让用户更改第一个视图上的设置

我在第二个视图中插入了一个开关,以允许用户更改第一个视图上的设置

我有两个问题,如何使用开关设置值的是和否?然后,基于这个值 第一种观点会有不同的反应吗

注意:我使用导航方法更改视图,而不是添加子视图

提前谢谢

假设我有以下代码

第一视图

- (IBAction) addValue:(id)sender
{
aValue ++;
}
//the following will react according to the setting on second view
If (????//Don't know what to put here to represent the switch is ON or OFF)
{ //whatever action}
else
{//whatever action}
第二视图

@interface
    //declaration of the switch
        - (IBAction) changeMode:(id)sender
    @end
第二视图

    -(IBAction) changeMode:(id)sender
{
    //What to put here to switch ON and OFF ??
}
您可以这样做:

if ( self.mySwitch.on )
// do something
这里我假设mySwitch是UISwitch的一个实例。最好将开关值存储到NSUserDefaults,以便您可以从另一个视图检索它

以下是存储值的方式:

NSString *switchValue; 
if ( self.mySwitch.on ) 
    switchValue = @"YES";
else 
    switchValue = @"NO";

[[NSUserDefaults standardUserDefaults] setObject:switchValue forKey:@"switchValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
BOOL switchState = [[[NSUserDefaults standardUserDefaults] objectForKey:@"switchValue"] boolValue];
以下是检索值的方式:

NSString *switchValue; 
if ( self.mySwitch.on ) 
    switchValue = @"YES";
else 
    switchValue = @"NO";

[[NSUserDefaults standardUserDefaults] setObject:switchValue forKey:@"switchValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
BOOL switchState = [[[NSUserDefaults standardUserDefaults] objectForKey:@"switchValue"] boolValue];
您可以这样做:

if ( self.mySwitch.on )
// do something
这里我假设mySwitch是UISwitch的一个实例。最好将开关值存储到NSUserDefaults,以便您可以从另一个视图检索它

以下是存储值的方式:

NSString *switchValue; 
if ( self.mySwitch.on ) 
    switchValue = @"YES";
else 
    switchValue = @"NO";

[[NSUserDefaults standardUserDefaults] setObject:switchValue forKey:@"switchValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
BOOL switchState = [[[NSUserDefaults standardUserDefaults] objectForKey:@"switchValue"] boolValue];
以下是检索值的方式:

NSString *switchValue; 
if ( self.mySwitch.on ) 
    switchValue = @"YES";
else 
    switchValue = @"NO";

[[NSUserDefaults standardUserDefaults] setObject:switchValue forKey:@"switchValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
BOOL switchState = [[[NSUserDefaults standardUserDefaults] objectForKey:@"switchValue"] boolValue];

嗯,对不起,有什么可以与我的代码相关的吗?好的,我编译它没有问题,但我发现当我切换到关闭后切换回第一个视图,再次切换到第二个视图(开关按钮所在的位置)时,它没有存储状态,它仍然“打开”。在用户首先更改后,您应该通过读取NSUserDefaults来设置viewDidLoad方法中的开关。嗯,对不起,有什么可以与我的代码相关的吗?好的,我编译它没有问题,但我发现,当我切换到关闭开关后切换回第一个视图,然后再次切换到第二个视图(开关按钮所在的位置)它不存储状态,它仍然是“开”的。您应该在用户首先更改开关后,通过读取NSUserDefaults来在viewDidLoad方法中设置开关。