我试图在开关打开时使用OneSignal发送标签,并在再次关闭时发送删除标签的请求。
@IBAction func tagGeneral(_ sender: UISwitch) {
if (sender.isOn == true) {
OneSignal.sendTag("General", value: "value")
print("sendtag")
}
else {
OneSignal.deleteTag("General")
print("deletetag")
}
}
这是我使用的代码。似乎可以正常工作,但是当用户转到另一个页面时,开关会自动关闭...
我该如何解决?
答案 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()
让我知道是否有帮助。