切换保存用户首选项

时间:2018-11-25 18:07:24

标签: ios swift

我试图在开关打开时使用OneSignal发送标签,并在再次关闭时发送删除标签的请求。

@IBAction func tagGeneral(_ sender: UISwitch) {

    if (sender.isOn == true) {
        OneSignal.sendTag("General", value: "value")
        print("sendtag")
    }
    else {
      OneSignal.deleteTag("General")
        print("deletetag")
    }
 }

这是我使用的代码。似乎可以正常工作,但是当用户转到另一个页面时,开关会自动关闭...

我该如何解决?

1 个答案:

答案 0 :(得分:0)

关于@Ryan的评论,这是一个答案:

首先。保存用户首选项的方法有很多,我将使用 copyProperties(Object o1, Object o2) |修改按钮操作代码:

UserDefaults()

通常,没有这个小功能将无法正常工作,请确保在@IBAction func tagGeneral(_ sender: UISwitch) { let userdef = UserDefaults.standard if (sender.isOn == true) { OneSignal.sendTag("General", value: "value") print("sendtag") // user made the choice userdef.set(true, forKey: "sw_set") } else { OneSignal.deleteTag("General") print("deletetag") // reset userdef.set(false, forKey: "sw_set") } } 中调用此功能:

viewDidAppear()

private func init_switch() { // Thanks @Vadian for the tip let userdef = UserDefaults.standard self.yourSwitch.isOn = userdef.bool(forKey: "sw_set") } 中调用它:

viewDidAppear()

让我知道是否有帮助。