【问题标题】:Using Interface Builder for a Switch使用 Interface Builder 进行切换
【发布时间】:2012-12-20 09:54:36
【问题描述】:

如果使用 interface builder 将 Switch 拖到 xib 文件中,则可以在 IB 中将状态设置为 on/off。有没有办法将开关的状态保存到下次应用启动时,以便开关处于关闭之前的相同状态?

【问题讨论】:

    标签: ios xcode save switch-statement


    【解决方案1】:

    您可以使用NSUserDefaults 保存它。

    首先将您的交换机连接为 IBOutlet

    @property (weak, nonatomic) IBOutlet UISwitch *mySwitch;
    

    还将您的交换机连接为 IBAction,事件类型为“Value Changed”

    - (IBAction)switched:(id)sender;
    

    然后在你的 UIViewController 的viewDidLoad

    BOOL savedState = [[NSUserDefaults standardUserDefaults] boolForKey:@"mySwitch"];
    [self.mySwitch setOn:savedState];
    

    在新的switched: 操作中

    - (IBAction)switched:(id)sender
    {
        if (sender == self.mySwitch)
        {
            [[NSUserDefaults standardUserDefaults] setBool:self.mySwitch.isOn forKey:@"mySwitch"];
            [[NSUserDefaults standardUserDefaults] synchronize];
        }
    }
    

    希望这会有所帮助。

    【讨论】:

    • 非常感谢。完美运行。但是我不得不将(弱,非原子)更改为(非原子,保留)
    • 哦,对不起。我不知道您没有使用自动引用计数 (ARC)。
    【解决方案2】:

    您可以为此使用NSUserDefaults

    保存开关状态如下:

    BOOL yourSwitchState = yourSwitch.on;
    [[NSUserDefaults standardUserDefaults] setBool:yourSwitchState forKey:@"Switch"];
    

    viewWillAppear 中获取用户默认值并将其设置为切换:

    BOOL switchState = [[NSUserDefaults standardUserDefaults] boolForKey:@"Switch"];
    yourSwitch.on = switchState;
    

    【讨论】:

      【解决方案3】:

      试试这个,

      • (void)handleSwitch:(UISwitch *)switch

      {

      如果(开启)

      {

           [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchState"];
      

      }

      否则

      { //

          [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchState"];
      

      }

      }

      下次启动应用时

      switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchState"];

      【讨论】:

        猜你喜欢
        • 2011-09-05
        • 1970-01-01
        • 2010-10-10
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-22
        • 1970-01-01
        相关资源
        最近更新 更多