Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uitableview 更改ViewController时保持原型单元的UISwitch状态_Uitableview_Swift_Uinavigationcontroller_Uiswitch - Fatal编程技术网

Uitableview 更改ViewController时保持原型单元的UISwitch状态

Uitableview 更改ViewController时保持原型单元的UISwitch状态,uitableview,swift,uinavigationcontroller,uiswitch,Uitableview,Swift,Uinavigationcontroller,Uiswitch,我有一个UITableViewCell子类,其中我从一个定制原型单元连接了一个UISwitch。(数据从上一个ViewController在表视图中传递) 当我更改视图控制器时,ui开关的状态将变回默认状态 在应用程序中导航时,我需要一些方法来记住交换机的状态。 我搜索了其他一些主题,但似乎没有任何东西落在我的情况下 代码如下: import UIKit class TableViewCell: UITableViewCell { @IBOutlet weak var myStaticSwi

我有一个
UITableViewCell
子类,其中我从一个定制原型单元连接了一个
UISwitch
。(数据从上一个ViewController在表视图中传递)

当我更改视图控制器时,
ui开关的状态将变回默认状态
在应用程序中导航时,我需要一些方法来记住交换机的状态。
我搜索了其他一些主题,但似乎没有任何东西落在我的情况下

代码如下:

import UIKit

class TableViewCell: UITableViewCell {

@IBOutlet weak var myStaticSwitch: UISwitch!
@IBOutlet weak var cellLabel: UILabel!
@IBAction func mySwitch(sender: UISwitch) {

    if myStaticSwitch.on {
    self.cellLabel.text = "on"
    //Do other things
    }
    else {
        self.cellLabel.text = "off"
    //Do other things
    }
}



override func awakeFromNib() {
    super.awakeFromNib()

    // Initialization code
}

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

    // Configure the view for the selected state
}

}

您应该有一个模型对象,用于确定表示它的UI的状态。此对象可以保存到磁盘,与核心数据保持一致,甚至同步到远程web服务

下次需要显示与对象相关的任何UI时,始终可以检查其属性以确定要显示的内容。然后,您的UI操作方法只需更新模型表示:

@IBAction func mySwitch(sender: UISwitch) {
    myModelObject.enabled = myStaticSwitch.on
}

然后,UI(例如,您的表格单元格)查找对启用的
的更改,并根据需要更新
单元格标签。

以下是代码。现在我需要一种方法来分别引用每个开关,而不是作为一个整体

import UIKit

class TableViewCell: UITableViewCell {



@IBOutlet weak var myStaticSwitch: UISwitch!

@IBAction func mySwitch(sender: UISwitch) {


    myStaticSwitch.on = (sender as UISwitch).on //Bool
    NSUserDefaults.standardUserDefaults().setBool(myStaticSwitch.on, forKey: "autoAdjustSettings")
    NSUserDefaults.standardUserDefaults().synchronize()

}



override func awakeFromNib() {
    super.awakeFromNib()


}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
    myStaticSwitch.on = NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings")

    // Configure the view for the selected state
}

}

我想我理解建议的方法,但我缺乏一些基本的知识。根据我的研究,模型对象是TableViewCell之外的一个类,但是我应该如何在那里存储这些数据呢?通过创建字典或其他什么?是一个很好的开始的地方。我不太了解上面的链接。这也是客观的。但我更接近我所需要的,如下所示。虽然这一次,当我访问同一个视图时,一旦一个交换机被更改,所有其他交换机都会获得相同的状态