viewdidload 中的 nsuserdefaults 禁用隐藏视图
nsuserdefaults in viewdidload disable hidding views
我正在使用 nsuserdefaults 保存一些 bools 数据,但我遇到了问题:
在我的情节提要中,我检查了 'hidden' 的视图,但是当我使用我的应用程序时,该视图不是 'hidden' 我注意到这是因为当我删除它时我的 userdefaults 在 viewdidload:
中,视图被隐藏。
有没有办法将其设置为隐藏?
我在 viedidload
中尝试设置隐藏但不起作用。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// viewnote2.hidden = true
let boolsKey = NSUserDefaults.standardUserDefaults()
viewnote2.hidden = boolsKey.boolForKey("bool2")
}
这就是这个观点的全部内容
这就像这里:
boolsKey.boolForKey("bool2")
返回 false,因此您可以将 viewnote2
设置为如下所示:
viewnote2.hidden = false
您为 "bool2"
保存的值显然不正确。
要向您使用的 boolsKey 添加值
boolsKey.setBool(value: Bool, forKey: String)
因此,当用户检查 'hidden' 以查看程序时,程序应该 运行
boolsKey.setBool(false, forKey: "bool2")
然后你就可以像以前那样阅读它了
viewnote2.hidden = boolsKey.boolForKey("bool2")
UI
上的某些时间更改在 viewDidLoad
上不起作用,请尝试隐藏 viewDidAppear
上的视图。还要检查您是否为 UserDefaults
.
中的 bool2
键设置了 Bool
值
如果您还没有在 UserDefaults
中设置 Bool 值,那么您需要先像这样设置。
let boolsKey = NSUserDefaults.standardUserDefaults()
boolsKey.setBool(false,forKey:"bool2")
boolsKey.synchronize()
编辑: 用于在 AppDelegate
.
中设置 bool
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let defaults = NSUserDefaults.standardUserDefaults()
let boolsKey = defaults.boolForKey("bool2")
if boolsKey {
defaults.setBool(false, forKey: "bool2")
defaults.synchronize()
}
return true
}
非常感谢@NDoc!首先我试图隐藏 viewDidAppear
但是当我启动应用程序时,我们看到 1 秒前的视图被隐藏了。
然后,我尝试将其设置为 NSUserdefault
on viewDidLoad
with
boolsKey.setBool(false,forKey:"bool2")
boolsKey.synchronize()
像那样:
if (boolsKey.boolForKey("bool2") == true){
boolsKey.setBool(true,forKey:"bool2")
boolsKey.synchronize()
} else {
boolsKey.setBool(false,forKey:"bool2")
boolsKey.synchronize()
}
对我有用:-)
我正在使用 nsuserdefaults 保存一些 bools 数据,但我遇到了问题:
在我的情节提要中,我检查了 'hidden' 的视图,但是当我使用我的应用程序时,该视图不是 'hidden' 我注意到这是因为当我删除它时我的 userdefaults 在 viewdidload:
中,视图被隐藏。
有没有办法将其设置为隐藏?
我在 viedidload
中尝试设置隐藏但不起作用。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// viewnote2.hidden = true
let boolsKey = NSUserDefaults.standardUserDefaults()
viewnote2.hidden = boolsKey.boolForKey("bool2")
}
这就是这个观点的全部内容
这就像这里:
boolsKey.boolForKey("bool2")
返回 false,因此您可以将 viewnote2
设置为如下所示:
viewnote2.hidden = false
您为 "bool2"
保存的值显然不正确。
要向您使用的 boolsKey 添加值
boolsKey.setBool(value: Bool, forKey: String)
因此,当用户检查 'hidden' 以查看程序时,程序应该 运行
boolsKey.setBool(false, forKey: "bool2")
然后你就可以像以前那样阅读它了
viewnote2.hidden = boolsKey.boolForKey("bool2")
UI
上的某些时间更改在 viewDidLoad
上不起作用,请尝试隐藏 viewDidAppear
上的视图。还要检查您是否为 UserDefaults
.
bool2
键设置了 Bool
值
如果您还没有在 UserDefaults
中设置 Bool 值,那么您需要先像这样设置。
let boolsKey = NSUserDefaults.standardUserDefaults()
boolsKey.setBool(false,forKey:"bool2")
boolsKey.synchronize()
编辑: 用于在 AppDelegate
.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let defaults = NSUserDefaults.standardUserDefaults()
let boolsKey = defaults.boolForKey("bool2")
if boolsKey {
defaults.setBool(false, forKey: "bool2")
defaults.synchronize()
}
return true
}
非常感谢@NDoc!首先我试图隐藏 viewDidAppear
但是当我启动应用程序时,我们看到 1 秒前的视图被隐藏了。
然后,我尝试将其设置为 NSUserdefault
on viewDidLoad
with
boolsKey.setBool(false,forKey:"bool2")
boolsKey.synchronize()
像那样:
if (boolsKey.boolForKey("bool2") == true){
boolsKey.setBool(true,forKey:"bool2")
boolsKey.synchronize()
} else {
boolsKey.setBool(false,forKey:"bool2")
boolsKey.synchronize()
}
对我有用:-)