NSUserDefaults切换开关在多任务处理后不会发生故障

时间:2016-09-03 19:51:05

标签: ios swift nsuserdefaults tvos

这是一个tvOS应用程序。我希望我的应用程序的背景基于使用NSUserDefaults的Settings中的切换开关进行更改。切换开关名为"白色背景",标识符为" whiteBackground",默认为' NO'。

使用我当前的代码,当用户点击主页,导航到“设置”并点按切换按钮时,它会正常工作。但是,如果用户双击主页按钮(为应用程序添加背景),请导航到“设置”按钮。通过任务切换器,然后通过任务切换器导航回应用程序,恢复设置。

这是我的代码:

class ViewController: UIViewController {

func registerDefaultSettings() {
    var appDefaults = ["whiteBackground": false]
    NSUserDefaults.standardUserDefaults().registerDefaults(appDefaults)
}

override func viewDidLoad() {
    super.viewDidLoad()

    registerDefaultSettings()
    uiSettings()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.uiSettings), name: UIApplicationWillEnterForegroundNotification, object: nil)
}

func uiSettings() {
    let defaults = NSUserDefaults.standardUserDefaults()
    if defaults.boolForKey("whiteBackground") {
        view.backgroundColor = UIColor.whiteColor()
    } else {
        view.backgroundColor = UIColor.blackColor()
    }   
}

1 个答案:

答案 0 :(得分:0)

不确定这是否是一个简单的修复

class DiveMasterIDTableViewCell: UITableViewCell, UITextFieldDelegate
{

@IBOutlet var textField: UITextField!

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


override func setSelected(selected: Bool, animated: Bool)
{
    super.setSelected(selected, animated: animated)
}


func textFieldDidEndEditing(textField: UITextField)
{

    (self.tableViewController as! DiveDetailsNew2TableVC).diveModel.name = textField.text!
}