gpt4 book ai didi

ios - 设置 UISwitch 的初始状态

转载 作者:搜寻专家 更新时间:2023-10-31 22:51:54 25 4
gpt4 key购买 nike

我的应用程序的设置菜单中有一个 UISwitch,但我在尝试将初始状态设置为“打开”时遇到了困难。即使我在属性检查器中将初始状态设置为“打开”,它在第一次打开时仍将其设置为“关闭”。

基本上目前,当应用程序第一次打开时,开关将设置为“关闭”,但如果您更改它,它会保存状态以便正常工作。

这是我的代码:

    @IBAction func dupOffOnSwitch(sender: AnyObject) {
if dupSwitch.on == true {
autoAdjust = true
println(autoAdjust)
} else {
autoAdjust = false
println(autoAdjust)
}

override func viewWillAppear(animated: Bool) {
dupSwitch.on = NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings")
println(NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings"))
}

“autoAdjust”在 import UIKit 下声明为 true。

最佳答案

为了在您第一次启动应用时将 NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings") 设置为 true,您可以替换 application:didFinishLaunchingWithOptions: AppDelegate 类的方法,代码如下:

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

//If app has never been launched...
if !NSUserDefaults.standardUserDefaults().boolForKey("isNotFirstLaunch") {
//Set autoAdjustSettings and isNotFirstLaunch to true
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "autoAdjustSettings")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isNotFirstLaunch")

//Sync NSUserDefaults
NSUserDefaults.standardUserDefaults().synchronize()
}

return true
}

当然,您可以在 UIViewController 子类中执行前面的代码,但 AppDelegate 应该是这些设置的地方。

完成后,您的 UIViewController 子类应如下所示:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var dupSwitch: UISwitch!

@IBAction func dupOffOnSwitch(sender: AnyObject) {
dupSwitch.on = (sender as UISwitch).on //Bool
NSUserDefaults.standardUserDefaults().setBool(dupSwitch.on, forKey: "autoAdjustSettings")
NSUserDefaults.standardUserDefaults().synchronize()
}

override func viewDidLoad() {
super.viewDidLoad()

dupSwitch.on = NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings")
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}

除非您有充分的理由,否则我认为您不需要在 UIViewController 子类中为 NSUserDefaults 语句使用 viewWillAppear: 方法。 viewDidLoad: 应该是正确的地方。

关于ios - 设置 UISwitch 的初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25626525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com